Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在gridview?C#ASP.NET上的itemtemplate中查找标签_C#_Asp.net - Fatal编程技术网

如何在gridview?C#ASP.NET上的itemtemplate中查找标签

如何在gridview?C#ASP.NET上的itemtemplate中查找标签,c#,asp.net,C#,Asp.net,我有一个GridView,它绑定了DB中的一些数据,在ItemTemplate中有一个标签,在EditItemTemplate中有一个EditTextbox,它们在同一个TemplateField中。在GridView中,某些用户在某处没有数据字段,如果我想为这些用户插入数据,我需要先找到GirdView标签并对edittextbox进行var,更新时我可以比较它们的值,例如edittextbox值不等于labeldata值,然后插入, 但在gridview的行更新或数据绑定时,我找不到标签的值

我有一个GridView,它绑定了DB中的一些数据,在ItemTemplate中有一个标签,在EditItemTemplate中有一个EditTextbox,它们在同一个TemplateField中。在GridView中,某些用户在某处没有数据字段,如果我想为这些用户插入数据,我需要先找到GirdView标签并对edittextbox进行var,更新时我可以比较它们的值,例如edittextbox值不等于labeldata值,然后插入, 但在gridview的行更新或数据绑定时,我找不到标签的值

我怎么做

我试过了

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数据,但不能找到我选择的数据

我是新手,请帮帮我

<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
    }
}

从aspx标记中,您使用了错误的标签id

您需要使用此标签id
lblHK\u TEL

更改后的代码如下所示

Label lbDA_TEL_HK_NO = ((Label)e.Row.FindControl("lblHK_TEL"));

你能展示你的aspx标记吗?例如,我只复制一次我的标签。我会试试这个,但我想知道我应该把这些代码放在哪里?你问题的标题是关于从网格视图的行中读取控件,如果我理解我们的评论,你真正的问题是“如何从网格视图编辑项模板中获取修改的值”,是吗?是的,我想从项目模板中获取值,但不想从编辑项目模板中获取值,我可以从编辑项目模板中获取值,但在显示数据时无法获取标签值,因为我必须知道字段的数据是否为空,当我单击编辑时,我可以插入用户的新数据
Label lbDA_TEL_HK_NO = ((Label)e.Row.FindControl("lblHK_TEL"));