C# 具有runat服务器的li
我在从codebehind创建动态C# 具有runat服务器的li,c#,html,asp.net,C#,Html,Asp.net,我在从codebehind创建动态元素时遇到问题。我需要将runat服务器分配给li,但我没有找到分配runat服务器的方法,所以当我需要更改代码隐藏的属性时,我找不到li控制。我的问题有答案吗?我是asp.net c#的新手 这是我的密码: <ul class="nav nav-tabs" runat="server" id="tabList"> //First i got ul control that i assign runat=server in aspx pag
<ul class="nav nav-tabs" runat="server" id="tabList">
//First i got ul control that i assign runat=server in aspx page
</ul>
//then i create li from code behind in Page_Init()
System.Web.UI.HtmlControls.HtmlGenericControl tab = new System.Web.UI.HtmlControls.HtmlGenericControl("li");
tab.ID = "tab" + (i + 1);
tab.Attributes.Add("runat", "server");//this is not working
tab.Controls.Add(new LiteralControl("<a href=\"#customer" + (i + 1) + "\" data-toggle=\"tab\">Penumpang " + (i + 1) + "</a>"));
//then i add the li to my ul controler called tablist
this.tabList.Controls.Add(tab);
//首先,我得到了ul控制,我在aspx页面中分配了runat=server
//然后我从Page_Init()中的代码创建li
System.Web.UI.HtmlControl.HtmlGenericControl选项卡=新建System.Web.UI.HtmlControl.HtmlGenericControl(“li”);
tab.ID=“tab”+(i+1);
tab.Attributes.Add(“runat”、“server”)//这不起作用
tab.Controls.Add(新的LiteralControl(“”);
//然后我把李加到我的ul控制器tablist上
this.tabList.Controls.Add(选项卡);
我的问题是,当页面加载时,我可以看到页面上的li,但是当我需要对其执行某些操作时,我无法从后面的代码调用li。有没有办法打电话给李先生?或在动态指定li时更改其属性?对不起,英语不好
提前感谢。您无法访问代码隐藏中的
的原因是它是动态生成的
动态生成的控件在视图上呈现时将丢失其状态,如果要在回发时在代码中再次访问这些控件,则需要在使用它们之前重新创建它们。因此,基本上,您需要在每次回发时重新创建它们,以访问它们的属性和值,并使用它们进行操作
另外,runat='server'
无法从代码隐藏中运行。除了使用
,您还可以尝试使用一些ASP.NET控件,例如Listview
或其他数据绑定控件
希望这能有所帮助。属性集合是针对HTML属性的
runat=“server”
不是HTML属性。与其使用HTML li,不如使用asp控件(如listview或repeater)生成?实际上我只需要控制HTML li或访问它,因为我动态创建li以创建所需的选项卡数量,如果选中它,我会得到dropdownlist事件,所选的选项卡(即li控件)将处于活动状态(属性将被更改),我不知道如何使用listview或repeater来执行li作业@se0ng11只有我没有得到的li控件,我动态创建文本框,我可以访问它,正如我在上面的评论中所说,我只需要访问li来更改属性,谢谢您的建议@HarveySpecter