VS2005新控件之GridView 使用高级技巧

在本例,我们要完成的工作主要有如下,当然,我得重申,这些都只是针对GridView控件,这其中也会使用到SqlDataSource控件,事实上在我们日常的使用中,GridView控件也总是需要起数据源控件的支持!
下面开始我们的GridView控件使用之高级技巧

1:添加移除列2:改列头名3:将某列设置特殊格式
4:增加鼠标动作5:为特定的数改变行样式6:客户端隐藏示特定的列
7:使用图片列做易图片集8:一次更新所记录9:改变编辑模式下文本框的长度
10:在GridView之外的地方显当前控件显示的页码11:使用控件做查询条件


由于一篇贴不完,所以新开一篇。上篇地址是http://thcjp.cnblogs.com/archive/2006/06/03/416679.html

接下来的代码是 小例 7 和 8 的,因为这个使用的是DateSet做数据源,所以单独做的

ContractedBlock.gif ExpandedBlockStart.gif 7、8小例的前台HTML代码
ExpandedBlockStart.gifContractedBlock.gif<%dot.gif@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
None.gif
None.gif
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
None.gif
None.gif
<html xmlns="http://www.w3.org/1999/xhtml" >
None.gif
<head runat="server">
None.gif    
<title>无标题页</title>
None.gif
</head>
None.gif
<body>
None.gif    
<form id="form1" runat="server">
None.gif    
<div>
None.gif        习惯,我们还是先拖一个控件到网页上来,下面,我直接复制先写好的建立DataSet的代码,因为现在写的话太浪费时间了:
<br />
None.gif        
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
None.gif            
<Columns>
None.gif                
<asp:BoundField DataField="id" HeaderText="ID" />
None.gif                
<asp:BoundField DataField="name" HeaderText="名字" />
None.gif                
<asp:BoundField DataField="dtt" HeaderText="时间" />
None.gif                
<asp:BoundField DataField="url" HeaderText="图片路径" />
None.gif                
<asp:ImageField DataImageUrlField="url" HeaderText="图片">
None.gif                
</asp:ImageField>
None.gif            
</Columns>
None.gif        
</asp:GridView>
None.gif        
<br />
None.gif        
<br />
None.gif        现在我们可以看下了,呵呵,看到了,那么到这里,我们的制作简易相册算完了,
<br />
None.gif        下面做批量修改记录了,我们重新建立一个GridView,这样看起来容易点
<br />
None.gif        
<br />
None.gif        
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" BackColor="White"
None.gif            BorderColor
="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4">
None.gif            
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
None.gif            
<Columns>
None.gif                
<asp:BoundField DataField="id" HeaderText="ID" />
None.gif                
<asp:TemplateField HeaderText="名字">
None.gif                    
<EditItemTemplate>
None.gif                        
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>
None.gif                    
</EditItemTemplate>
None.gif                    
<ItemTemplate>
None.gif                        
<asp:TextBox ID="gname" runat="server" Text='<%# Bind("name") %>' Width="67px"></asp:TextBox>
None.gif                    
</ItemTemplate>
None.gif                
</asp:TemplateField>
None.gif                
<asp:TemplateField HeaderText="时间">
None.gif                    
<EditItemTemplate>
None.gif                        
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("dtt") %>'></asp:TextBox>
None.gif                    
</EditItemTemplate>
None.gif                    
<ItemTemplate>
None.gif                        
<asp:Label ID="Label2" runat="server" Text='<%# Bind("dtt") %>'></asp:Label>
None.gif                    
</ItemTemplate>
None.gif                
</asp:TemplateField>
None.gif                
<asp:TemplateField HeaderText="图片">
None.gif                    
<EditItemTemplate>
None.gif                        
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("url") %>'></asp:TextBox>
None.gif                    
</EditItemTemplate>
None.gif                    
<ItemTemplate>
None.gif                        
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("url") %>' />
None.gif                    
</ItemTemplate>
None.gif                
</asp:TemplateField>
None.gif            
</Columns>
None.gif            
<RowStyle BackColor="White" ForeColor="#330099" />
None.gif            
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
None.gif            
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
None.gif            
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
None.gif        
</asp:GridView>
None.gif        
<br />
None.gif        
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="更新" Width="290px" /><br />
None.gif        
<br />
None.gif        至此,全部完了,有什么不清楚的可以跟我交流,你们应该能看出来,我也不是高手,呵呵,大家一起交流,共同进步了!! 我QQ
&nbsp; 110535808</div>
None.gif    
</form>
None.gif
</body>
None.gif
</html>
None.gif

ContractedBlock.gif ExpandedBlockStart.gif 7、8小例的后台CS代码
None.gifusing System;
None.gif
using System.Data;
None.gif
using System.Configuration;
None.gif
using System.Collections;
None.gif
using System.Web;
None.gif
using System.Web.Security;
None.gif
using System.Web.UI;
None.gif
using System.Web.UI.WebControls;
None.gif
using System.Web.UI.WebControls.WebParts;
None.gif
using System.Web.UI.HtmlControls;
None.gif
None.gif
public partial class Default2 : System.Web.UI.Page
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif    
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{//当页面载入的时候建立表
InBlock.gif
        if (!IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            DataSet ds 
= new DataSet("gv");//NEW一个标视为 gv的库
InBlock.gif

InBlock.gif            DataTable dt 
= new DataTable("logoo");//为上面的库建立一个标视为logoo的数据表
InBlock.gif
            dt.Columns.Add(new DataColumn("id"typeof(int)));//建立新的数据列, 类型为int,列名为id的数据列
InBlock.gif
            dt.Columns.Add(new DataColumn("name"typeof(string)));
InBlock.gif            dt.Columns.Add(
new DataColumn("url"typeof(string)));
InBlock.gif            dt.Columns.Add(
new DataColumn("dtt"typeof(DateTime)));
InBlock.gif
InBlock.gif            DataRow dr 
= dt.NewRow();//建立一个新的数据行
InBlock.gif
            dr["id"= 1;//设置单元格数据
InBlock.gif
            dr["name"= "Logo";
InBlock.gif            dr[
"url"= "~/img/2.gif";
InBlock.gif            dr[
"dtt"= DateTime.Now;
InBlock.gif            dt.Rows.Add(dr);
//将该行添加到表里
InBlock.gif

InBlock.gif            dr 
= dt.NewRow();
InBlock.gif            dr[
"id"= 2;
InBlock.gif            dr[
"name"= "标志";
InBlock.gif            dr[
"url"= "~/img/3.gif";
InBlock.gif            dr[
"dtt"= DateTime.Now;
InBlock.gif            dt.Rows.Add(dr);
InBlock.gif
InBlock.gif            dr 
= dt.NewRow();
InBlock.gif            dr[
"id"= 3;
InBlock.gif            dr[
"name"= "洪川";
InBlock.gif            dr[
"url"= "~/img/2.gif";
InBlock.gif            dr[
"dtt"= DateTime.Now;
InBlock.gif            dt.Rows.Add(dr);
InBlock.gif
InBlock.gif            dr 
= dt.NewRow();
InBlock.gif            dr[
"id"= 3;
InBlock.gif            dr[
"name"= "洪川";
InBlock.gif            dr[
"url"= "~/img/2.gif";
InBlock.gif            dr[
"dtt"= DateTime.Now;
InBlock.gif            dt.Rows.Add(dr);
InBlock.gif
InBlock.gif            ds.Tables.Add(dt);
//把表添加到库里,怎么样,简单吧,呵呵
InBlock.gif

InBlock.gif            Session[
"ds"= ds;//为了方便数据一直保存在内存中,我们把他放到Session中去
InBlock.gif
            fill();//在这里调用方法绑定数据,下面我们看下实际的效果
ExpandedSubBlockEnd.gif
        }

ExpandedSubBlockEnd.gif    }

InBlock.gif    
private void fill()
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{//我们做一个方法,来绑定数据到视图中去
InBlock.gif
        DataSet ds = (DataSet)Session["ds"];//这里应该强制类型转换的,呵呵,不过现在确实还不能看,因为前面我们还没有绑定数据哦
InBlock.gif

InBlock.gif        GridView1.DataSource 
= ds;
InBlock.gif        GridView1.DataBind();
InBlock.gif
InBlock.gif        GridView2.DataSource 
= ds;
InBlock.gif        GridView2.DataBind();
ExpandedSubBlockEnd.gif    }

InBlock.gif    
protected void Button1_Click(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{//下面我们开始对他里面的数据实行批量更改
InBlock.gif
        for(int i=0;i<GridView2.Rows.Count;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif              GridViewRow gvr
=GridView2.Rows[i];//声明一个行对象
InBlock.gif
              string lbl = ((TextBox)gvr.Cells[1].FindControl("gname")).Text.Replace("'","@_~!");//得到文本框里的数据,郁闷,肚子饿了,脑子不好用了,呵呵
InBlock.gif

InBlock.gif            
if(lbl=="标志")  
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{//郁闷,==我看下
InBlock.gif
            DataSet ds = (DataSet)Session["ds"];
InBlock.gif            ds.Tables[
"logoo"].Rows[i]["name"= "洪川医药";//这里错,这应该是循环的当前行,唉
InBlock.gif

InBlock.gif            Session[
"ds"= ds;//还是还给Session
InBlock.gif
            fill();//重新绑定
ExpandedSubBlockEnd.gif
            }

ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

转载于:https://www.cnblogs.com/zhuangjunx/archive/2006/07/12/448618.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值