C# 有没有办法在下添加来自服务器的项,并保留我想要的ul ID?

C# 有没有办法在下添加来自服务器的项,并保留我想要的ul ID?,c#,html,user-controls,html-lists,C#,Html,User Controls,Html Lists,首先,请注意我使用的是C 基本上,我知道我可以在ul标记下添加服务器控件,该标记为runat=server: HTML: 但问题是,一旦我添加了这些项,ul项现在有了一个新生成的id,比如:id=ctl00\u cphMainContainer\u ctl00\u myID,这会破坏我的javascript代码和css 我想知道,是否有一种干净的方法可以添加我的li项目并保持我的ul不变?根据您的框架版本,如果您确定它不会生成冲突的ID,您可以尝试更改ul的ClientIDMode,使其保持静态

首先,请注意我使用的是C

基本上,我知道我可以在ul标记下添加服务器控件,该标记为runat=server:

HTML:

但问题是,一旦我添加了这些项,ul项现在有了一个新生成的id,比如:id=ctl00\u cphMainContainer\u ctl00\u myID,这会破坏我的javascript代码和css


我想知道,是否有一种干净的方法可以添加我的li项目并保持我的ul不变?

根据您的框架版本,如果您确定它不会生成冲突的ID,您可以尝试更改ul的ClientIDMode,使其保持静态:

<ul id="myID" runat="server" ClientIDMode="Static"></ul>

请参阅:

您可以在javascript中使用类似$'ul[id$=myID]'的语法来识别元素。这将匹配以myID结尾的ul元素,并且不会破坏代码。在服务器端,您仍然可以使用相同的id访问它。您的建议弄乱了我的javascript,我不知道如何使用该语法将内容组合在一起,例如:我有类似:$myID a的内容,该如何更改为?$'ul[id$=myID]a'
myId.Controls.Add(...);
<ul id="myID" runat="server" ClientIDMode="Static"></ul>