如何在gridview上的itemtemplate中找到标签?c# ASP.NET
本文关键字:标签 NET ASP gridview 上的 itemtemplate | 更新日期: 2023-09-27 18:09:15
我有一个GridView,它从DB绑定了一些数据,并在ItemTemplate和EditTextbox中的edittitemtemplate中有一个标签,它们在同一个TemplateField中。在GridView中,一些用户在某个字段中没有数据,如果我想为这些用户插入数据,我需要首先找到GirdView标签并var edittextbox,更新时我可以比较它们的值,例如edittextbox值不等于labeldata值,然后插入,但我找不到标签的值时,行更新或gridview的边界
我该怎么做呢?
I have try
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int rowCount = GridView1.Rows.Count;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (rowCount >= 1)
{
Label lbDA_TEL_HK_NO = ((Label)e.Row.FindControl("lblKM_TEL"));
Session["DA_TEL_HK_NO"] = lbDA_TEL_HK_NO.Text;
}
}
}
它可以找到所有的gridview数据,但不是我选择的
p。我是新手,请帮帮我。
<asp:TemplateField ItemStyle-Width = "150px" HeaderText = "香港內線">
<ItemTemplate>
<asp:Label ID="lblHK_TEL" runat="server"
Text='<%# Eval("[DA_TEL_HK_NO]")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtHK_TEL" runat="server" onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" MaxLength="3"
Text='<%# Eval("[DA_TEL_HK_NO]")%>'></asp:TextBox>
</EditItemTemplate>
你可以尝试像这样读取网格视图中的所有行:
for (var i = 0; i < GridView1.Rows.Count; i++)
{
var label = GridView1.Rows[i].FindControl("lblKM_TEL") as Label;
if (label != null)
{
// Manipulate label control
}
}
或者你可以从选定的行获取标签:
var label = GridView1.SelectedRow.FindControl("lblKM_TEL") as Label;
if (label != null)
{
// Manipulate label control
}
您的aspx标记使用了错误的标签id。
你需要使用这个标签id lblHK_TEL
修改后的代码如下
Label lbDA_TEL_HK_NO = ((Label)e.Row.FindControl("lblHK_TEL"));