Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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
当标签没有id属性时,获取C#CodeBehind中标签的值_C#_Asp.net_Webforms_Label_Code Behind - Fatal编程技术网

当标签没有id属性时,获取C#CodeBehind中标签的值

当标签没有id属性时,获取C#CodeBehind中标签的值,c#,asp.net,webforms,label,code-behind,C#,Asp.net,Webforms,Label,Code Behind,我的没有id属性。它只有一个for属性。我可以在CodeBehind C#中获取此标签的值吗 此应用程序是在ASP.NET中构建的 <label for="txtEmpCd">Department</label> <asp:DropDownList ID="DropDownList4" runat="server" CssClass="form-control"></asp:DropDownList> 部门 使用带有关联控件ID的标签 <a

我的
没有
id
属性。它只有一个
for
属性。我可以在CodeBehind C#中获取此标签的值吗

此应用程序是在ASP.NET中构建的

<label for="txtEmpCd">Department</label>
<asp:DropDownList ID="DropDownList4" runat="server" CssClass="form-control"></asp:DropDownList>
部门

使用带有
关联控件ID的
标签

<asp:Label ID="Label1" runat="server" Text="Department" AssociatedControlID="DropDownList4"></asp:Label>

您可以访问一个没有ID的
,但它需要通过页面上的控件进行递归搜索。这将要求标签采用以下形式:

您需要定义如下递归函数:

private void LoopThroughLabels(Control parent)
{
    foreach (Control c in parent.Controls)
    {
        Label label = c as Label;
        if (label != null)
        {
            if (label.AssociatedControlID == "txtEmpCd")
            {
                // This is your label
            }
        }

        if (c.HasControls())
        {
            LoopThroughLabels(c);
        }
    }
}
对于第一次呼叫,请传入
页面

LoopThroughLabels(Page);

如果没有runat=“server”,则无法从codebehind访问

如果您只能从codebehind进行访问,查找并读取整个页面中的所有html文本,那么属性的get元素是“txtEmpCd”,这非常繁琐,而且不是正确的方法

在jQuery(客户端)中,您可以找到具有for属性的标签“txtEmpCd”也很单调乏味


我的建议!为什么不将ID=“txtEmpCd”添加到标签中?

您是否尝试过使用
而不是
?我同意,使用ASP控件效果最好-否则,如果没有runat=“server”,Codebehind将无法识别标签为对象,只将其视为HTML文本。不,但我们可以进行此更改,但是创建id非常困难,因为我们的应用程序太大,没有id,ASP标签就可以工作??我从来没有听说过应用程序太大而不能使用HTML id。如果我内联使用客户端id,我将如何在CodeBehind C#?中获得标签值??你能补充一下吗?第二个建议也不能真正回答这个问题,尽管对于
@Lalji,没有ID你什么都做不了。好的,谢谢,我只是想确认一下。