datagrid中怎么用findcontrol? 用的是模板列,一页显示N行数据,都是label怎么找到第一行和最后一行的数据值?急!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 e.Item.Cells[0].FindControl("labelID")e.Item.Cells[7].FindControl("labelID")索引为控件在模块列中的位置也可以的e.Item.Cells[0].Controls[0] DataGridItem dgi = YourDataGrid.Items[0];Label l = (Label)dgi.FindControl("lblID");dgi = YourDataGrid.Items[YourDataGrid.Items.Count-1];l = (Label)dgi.FindControl("lblID"); 在邦定事件写:private void projectinfo_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem) { if(e.Item.ItemIndex ==1) string youstring = e.Item.Cells[0].FindControl("labelID");}} http://dotnet.aspx.cc/ShowDetail.aspx?id=60B8B07E-A3DF-4AE5-B5F8-71204C7C8793 string NeedIfo = ((Label)e.Item.FindControl("lblID")).Text 假设DataGrid的第一列声明如下<asp:HyperLinkColumn DataTextField="au_id" HeaderText="au_id" DataNavigateUrlField="au_id" DataNavigateUrlFormatString="Edit.aspx?id={0}"></asp:HyperLinkColumn>读取的时候可以用://Items[0]表示第一行,Cells[0]表示第一列,Controls[0]表示Cell中的第一个控件(也只有这个控件可以用)HyperLink link = (HyperLink)DataGrid1.Items[0].Cells[0].Controls[0]);Response.Write(link.Text);至于模板列(TemplateColumn),当然也可以通过DataGrid1.Items[i].Cells[j].Controls[n]来获取,然后转换成原来的控件类型再操作,但是还有个更好的办法,就是用FindControl来查找控件。FindControl是System.Web.UI.Control的方法,可以根据子控件ID来查找子控件比如:假设DataGrid的某一列声明如下<asp:TemplateColumn> <ItemTemplate> <asp:TextBox Runat="server" ID="txtID" Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>'> </asp:TextBox> </ItemTemplate></asp:TemplateColumn>读取方法:TextBox txt = (TextBox)DataGrid1.Items[1].FindControl("txtID");Response.Write(txt.Text); 请大家给点意见。谢谢 (求助)后台为按钮添加后台单击事件 各位大哥,如何实现TreeGridView效果,要求子节点用ajax添加 MVC现在流行吗 搞几天了,treeview 的webcontrol的两级列表显示 请问怎么读取数据库中单独一个字段的数据? 汉字的问题 这样的源代码大家会不会有? ASP.NET中网页显示中文的问题! 母版页和不是母版页的区别求解答。 新的难题:如何双击datagrid的一行 将其内容邦定到 textbox 各位高手,看看这是什么原因啊?
e.Item.Cells[7].FindControl("labelID")索引为控件在模块列中的位置也可以的
e.Item.Cells[0].Controls[0]
Label l = (Label)dgi.FindControl("lblID");dgi = YourDataGrid.Items[YourDataGrid.Items.Count-1];
l = (Label)dgi.FindControl("lblID");
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
if(e.Item.ItemIndex ==1)
string youstring = e.Item.Cells[0].FindControl("labelID");}
}
<asp:HyperLinkColumn DataTextField="au_id" HeaderText="au_id" DataNavigateUrlField="au_id" DataNavigateUrlFormatString="Edit.aspx?id={0}"></asp:HyperLinkColumn>
读取的时候可以用:
//Items[0]表示第一行,Cells[0]表示第一列,Controls[0]表示Cell中的第一个控件(也只有这个控件可以用)
HyperLink link = (HyperLink)DataGrid1.Items[0].Cells[0].Controls[0]);
Response.Write(link.Text);
至于模板列(TemplateColumn),当然也可以通过DataGrid1.Items[i].Cells[j].Controls[n]来获取,然后转换成原来的控件类型再操作,但是还有个更好的办法,就是用FindControl来查找控件。
FindControl是System.Web.UI.Control的方法,可以根据子控件ID来查找子控件
比如:
假设DataGrid的某一列声明如下
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox Runat="server" ID="txtID" Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
读取方法:
TextBox txt = (TextBox)DataGrid1.Items[1].FindControl("txtID");
Response.Write(txt.Text);