使用 c 访问动态创建的 htmlgenericcontrols,如 div、label 和 checkbox#

Access dynamically created htmlgenericcontrols like div,label and checkbox using c#

提问人:Kalpesh 提问时间:11/3/2017 更新时间:11/3/2017 访问量:312

问:

我使用带有runat=“server”的htmlgenericcontrol创建了一些div,label和复选框。这些动态创建的 div 被添加到在设计时创建的主 div 中。 现在,我想在页面加载时使用 c# 访问动态创建的 div 中的复选框。 我使用 C# 创建的动态 div 如下所示 -

<div id='firstdiv'> 
<div id='seconddiv'>
              <label id='lbl' >
                  <input type="checkbox" id="chk" value="check" runat="server">                                                                          
                  <div id='thirddiv'></div>
              </label>
</div></div>

我尝试了以下选项,但没有一个有效 -

HtmlGenericControl chkfirstdiv = HtmlGenericControl)maindiv.FindControl(strchkfirstdiv) 作为 HtmlGenericControl;

HtmlGenericControl chkfirstdiv1 = HtmlGenericControl)FindControl(strchkfirstdiv) 作为 HtmlGenericControl;

LiteralControl literalControl = LiteralControl)maindiv.FindControl(strchkfirstdiv);

任何人都可以帮助访问动态 div 中的动态复选框吗?

C# HTML通用控制

评论


答:

0赞 Babak Naffas 11/3/2017 #1

对于 WebForms,您应该创建控件,设计器应为您生成控件,并且其属性将在回发时填充,而无需调用 FindControl(..)。<asp:Checkbox Id="MyCheckbox" runat="server" Text="Check" />Checkbox MyCheckboxChecked

评论

0赞 Kalpesh 11/3/2017
我创建了asp:checkbox而不是input tupe=checkbox,但是我仍然无法在单击按钮时访问该chekbox
0赞 ahmednawazbutt 11/3/2017 #2

asp 按钮将根据其名称而不是 ID 进行访问,因此在复选框定义中放置一个 name 属性,例如在单击事件时在后端访问 myCheckBox<asp:Checkbox Id="MyCheckbox" name="myCheckBox" runat="server" Text="Check" />