怎样获取获取GridView里面的label

本文详细介绍了如何在ASP.NET中使用GridView控件,并重点讲解了如何通过RowDataBound事件获取自定义模板列中Label控件的引用。通过具体示例展示了如何定位到所需的Label控件。

GridView如下:

None.gif<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
None.gif      
<Columns>
None.gif 
<asp:BoundField DataField="errornum" HeaderText="错误数" />   //control[0]
None.gif 
<asp:BoundField DataField="rightnum" HeaderText="正确数" />   //controls[1]
None.gif 
<asp:BoundField DataField="adatatime" HeaderText="答题时间" /> //control[2]
None.gif    
  
<asp:TemplateField HeaderText="正确率">                                       //control[3]
None.gif      
<ItemTemplate>
None.gif       
<asp:Label ID="bfb" runat=server>aa</asp:Label>
None.gif      
</ItemTemplate>
None.gif      
</asp:TemplateField>

None.gif      
</Columns>
None.gif      
</asp:GridView>
None.gif

我们现在要在 GridView1_RowDataBound(object sender, GridViewRowEventArgs e)事件中获取
<asp:Label ID="bfb" runat=server>aa</asp:Label>的引用
代码如下:

1     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
2     {
3         if (e.Row.RowType == DataControlRowType.DataRow)
4         {
5              Label bfb = (Label)e.Row.Controls[3].FindControl("bfb");
  
6 
7         }
8 
9     }

上面的第五行代码 Label bfb = (Label)e.Row.Controls[3].FindControl("bfb");
也可以改为     Label bfb = (Label)e.Row.Controls[3].Controls[1];
因为

None.gif<asp:TemplateField HeaderText="正确率">  </asp:TemplateField>
包含
None.gif-System.Web.UI.LiteralControl      //controls[0]
None.gif-System.Web.UI.WebControls.Label  //controls[1]
None.gif-System.Web.UI.LiteralControl      //control[2]
三个子控件,所以label 的index为1。





 

转载于:https://www.cnblogs.com/yaoguobiao/archive/2006/03/26/358917.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值