C# 从代码隐藏调用动态创建的控件
我正在使用C# 从代码隐藏调用动态创建的控件,c#,html,asp.net,innerhtml,C#,Html,Asp.net,Innerhtml,我正在使用HtmlGenericControl方法动态创建一个控件,然后尝试在代码中调用该控件。显然,由于该控件尚未实际创建,因此代码会抛出构建错误。有没有办法解决这个问题?这是我正在使用的代码: foreach(string t in equipmentTypes) { HtmlGenericControl li = new HtmlGenericControl("li");//Create html control <li> //Create the correc
HtmlGenericControl
方法动态创建一个控件,然后尝试在代码中调用该控件。显然,由于该控件尚未实际创建,因此代码会抛出构建错误。有没有办法解决这个问题?这是我正在使用的代码:
foreach(string t in equipmentTypes)
{
HtmlGenericControl li = new HtmlGenericControl("li");//Create html control <li>
//Create the correct <li> for the equipment type. Using the naming convention tableAbreviation_recordName eg: et_ATV.
li.InnerHtml = "<div id='et_" + t +"' >" + t + "<label><input type='checkbox'></label></div><ul id='make' runat='server'>";
equipmentType.Controls.Add(li);
}
makes = Statements.GetMake();
foreach(string t in makes)
{
HtmlGenericControl li = new HtmlGenericControl("li");//Create html control <li>
//Create the correct <li> for the equipment type. Using the naming convention tableAbreviation_recordName eg: et_ATV.
li.InnerHtml = "<div id='mk_" + t + "' >" + t + "<label><input type='checkbox'></label></div>";
make.Controls.Add(li);
}
经过一些研究,我找到了一个名为Repeater的ASP.NET控件。这在创建动态ul时非常有效 这是我用来从数据库动态加载值的代码
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate><ul></HeaderTemplate>
<ItemTemplate><li><div id="et_"><%# Eval("EquipmentTypeName") %><label><input type="checkbox"></label></div><ul id="_make" runat="server">
<asp:Repeater ID="Repeater2" runat="server" DataSourceID="SQL_Make">
<ItemTemplate>
<li><div id="mk_"><%# Eval("MakeName") %><label><input type="checkbox"></label></div><ul id="_year" runat="server"></ul></li>
</ItemTemplate>
</asp:Repeater>
</ul></li></ItemTemplate>
<FooterTemplate></ul></FooterTemplate>
</asp:Repeater>
您可以将代码张贴在您试图查找此控件的位置吗?已更新。实际上,我继续尝试使用ASP:Repeater控件。但是我仍然没有让它工作。你在哪里创建ID为“ATV_make”的控件?对不起,我想我没有正确解释该部分。正在退役的数据库中的值将是ATV。但我已经想出了一个解决办法使用中继器。谢谢你的回复。
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate><ul></HeaderTemplate>
<ItemTemplate><li><div id="et_"><%# Eval("EquipmentTypeName") %><label><input type="checkbox"></label></div><ul id="_make" runat="server">
<asp:Repeater ID="Repeater2" runat="server" DataSourceID="SQL_Make">
<ItemTemplate>
<li><div id="mk_"><%# Eval("MakeName") %><label><input type="checkbox"></label></div><ul id="_year" runat="server"></ul></li>
</ItemTemplate>
</asp:Repeater>
</ul></li></ItemTemplate>
<FooterTemplate></ul></FooterTemplate>
</asp:Repeater>