猿问
下载APP

如何阻止ASP.NET更改ID以使用jQuery

如何阻止ASP.NET更改ID以使用jQuery

我的网页上有这个标签控件

<asp:Label ID="Label1" runat="server" Text="test"></asp:Label>

当页面呈现控件的id改变为这样的东西

  <span id="ctl00_ContentPlaceHolder1_Label3">test</span>

如何阻止asp.net更改ID以执行这样的jQuery操作

$('#label1').html(xml);


12345678_0001
浏览 45回答 3
3回答

繁星淼淼

而不是使用此选择器$('#Label1')使用这一个,基本上你使用的是经典的asp内联服务器端代码。$('#<%=&nbsp;Label1.ClientID&nbsp;%>')这将插入生成的任何ID作为文字放置。如果您希望使用外部文件,那么我建议您在页面上创建一个全局的obj来保存所有客户端ID,然后在外部文件中引用该obj(不理想,但它是一个解决方案)var&nbsp;MyClientIDs&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;Label1&nbsp;=&nbsp;'<%=&nbsp;Label1.ClientID&nbsp;%>', &nbsp;&nbsp;&nbsp;&nbsp;Label2&nbsp;=&nbsp;'<%=&nbsp;Label2.ClientID&nbsp;%>', &nbsp;&nbsp;&nbsp;&nbsp;Textbox1&nbsp;=&nbsp;'<%=&nbsp;Textbox1.ClientID&nbsp;%>', &nbsp;&nbsp;&nbsp;&nbsp;Textbox2&nbsp;=&nbsp;'<%=&nbsp;Textbox2.ClientID&nbsp;%>'};然后在外部文件中,您可以访问Label1,例如:&nbsp;$('#' + MyClientIDs.Label1)

富国沪深

.NET 4现在可以让您选择ClientIDMode:键入:System.Web.UI.ClientIDMode一个值,指示如何生成ClientID属性。默认值为Inherit。AutoID&nbsp;ClientID值是通过将每个父命名容器的ID值与控件的ID值连接而生成的。在呈现控件的多个实例的数据绑定方案中,将在控件的ID值前插入递增值。每个段由下划线字符(_)分隔。此算法用于早于ASP.NET 4的ASP.NET版本。Static&nbsp;ClientID值设置为ID属性的值。如果控件是命名容器,则该控件将用作其包含的任何控件的命名容器层次结构的顶部。可预测此算法用于数据绑定控件中的控件。ClientID值是通过将父命名容器的ClientID值与控件的ID值连接而生成的。如果控件是生成多行的数据绑定控件,则会在末尾添加ClientIDRowSuffix属性中指定的数据字段的值。对于GridView控件,可以指定多个数据字段。如果ClientIDRowSuffix属性为空,则在末尾添加序号而不是数据字段值。此数字从零开始,每行增加1。每个段由下划线字符(_)分隔。继承控件继承其NamingContainer控件的ClientIDMode设置。

MM们

在.NET 4+集中ClientIDMode="Static"。这将解决您的问题。例:<asp:Label&nbsp;ID="Label1"&nbsp;ClientIDMode="Static"&nbsp;runat="server"&nbsp;Text="test"></asp:Label>
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答