当标签没有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你什么都做不了。好的,谢谢,我只是想确认一下。