GridView中利用隐藏的TemplateFied来进行数据访问.

    在上一个学习随笔中我们可以利用DataKeyNames和DataKeys来进行GridView主键列的数据访问, 在后来试验中,我发现我们可以利用TemplateField来实现其他的数据访问.

< asp:TemplateField  Visible ="False" >
     
< ItemTemplate >
          
< asp:Literal  id ="litUserName"  runat ="Server"  Text ='<%#Eval("UserName")% > '/>
     
</ ItemTemplate >
</ asp:TemplateField >

//后台实现

String userName = ((Literal)GridView1.SelectedRow.FindControl("litUserName")).Text;
    
     GridView的AutoGenerateSelectButton属性可以直接使表格实现选择,  如果不想多增加一列选择列, 我们可以利用TemplateField实现GridView的选择.

ASP.NET代码如下:

< asp:BoundField  DataField ="ObjectID"  HeaderText ="ID" />
< asp:TemplateField >
    
< HeaderTemplate >
         Name
    
</ HeaderTemplate >
    
< ItemTemplate >
         
< asp:LinkButton  id ="lbName"  runat ="Server"  CommandName ="Select" >
            
<% # Eval ( " Name " ) %>
         
</ asp:LinkButton >
    
</ ItemTemplate >
</ asp:TemplateField >
< asp:BoundField  DataField ="Status"  HeaderText ="Status" />

同时要给GridView增加两个事件处理RowCreated, RowCommand
//RowCreated事件处理
void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
            if (e.Row.RowType == DataControlRowType.DataRow)
            {                ((LinkButton)e.Row.FindControl("lbName")).CommandArgument = e.Row.RowIndex.ToString();
            }
}
//RowCommand事件处理
void GridView1_RowCommand(object source, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
     GridView1.SelectedIndex = int.Parse(e.CommandArgument.ToString());
}

这样在点击名称时就可以同时进行选择,不必再利用选择列.

转载于:https://www.cnblogs.com/dreammaster/archive/2006/05/19/403920.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值