正在更改asp.net中前缀为“ct100”的控件ID

正在更改asp.net中前缀为“ct100”的控件ID,asp.net,Asp.net,检查我的页面控件id时,类似于-ContentPlaceHolder1\u lnkDistributors 但是,在live server中托管我的站点之后,前缀将添加到上面的ID中 例如:ctl00\u内容占位符1\u lnkDistributors 请帮帮我。 感谢您的支持。我已将clientmode=Static添加到母版页 <%@ Master ClientIDMode="Static".... 这里的ID是这样的:仅lnkDistributors,而不像ContentPlac

检查我的页面控件id时,类似于-ContentPlaceHolder1\u lnkDistributors

但是,在live server中托管我的站点之后,前缀将添加到上面的ID中

例如:ctl00\u内容占位符1\u lnkDistributors

请帮帮我。 感谢您的支持。

我已将clientmode=Static添加到母版页

<%@ Master  ClientIDMode="Static"....
这里的ID是这样的:仅lnkDistributors,而不像ContentPlaceholder 1\u lnkDistributors或ctl00\u ContentPlaceholder 1\u lnkDistributors

现在它可以正常工作了。

静态ClientMode用于控制HTML中的ID;但您必须小心使用它:它并不能保证页面中控件ID的唯一性

<asp:LinkButton ID="lnkDistributors" ClientIDMode="Static"  
 runat="server" Text="Distributors">  </asp:LinkButton>
如果控件的ClientIDMode设置为AutoID,则该控件的ID将具有前缀以使其唯一。e、 g.ID为sam的控件将成为ct100_sam。 如果控件的ClientIDMode设置为Static,则ID不会更改,并与开发人员设置的ID保持一致

ASP.NET为如何生成ClientID属性值提供了多种算法。通过设置控件的ClientIDMode属性,可以选择要用于控件的算法。这些算法由下表中列出的ClientIDMode枚举值标识

自动识别 ClientID值是通过将每个父命名容器的ID值与 控制在数据绑定场景中,多个 控件,则在 控件的ID值。每个段用下划线分隔 字符。此算法已在早期版本的ASP.NET中使用 而不是ASP.NET4

静止的 ClientID值设置为ID属性的值。如果控件是命名容器,则该控件将用作顶部 指定的任何控件的命名容器层次结构 包含

可预测的 此算法用于数据绑定控件中的控件。ClientID值是通过连接生成的 ID值为的父命名容器的ClientID值 控制。如果控件是生成 多行中指定的数据字段的值 ClientDrowSuffix属性添加到末尾。对于GridView 控件,可以指定多个数据字段。如果 ClientIDRowSuffix属性为空,将在 结束,而不是数据字段值。这个数字从零开始,从零开始 每行递增1。每个段由一个 下划线字符

继承 该控件继承其NamingContainer控件的ClientMode设置。页面的ClientIDMode的默认值 这是可以预测的。控件的ClientIDMode的默认值为 继承由于控件的默认值为Inherit,因此默认值为 生成模式是可预测的。但是,如果您使用VisualStudio 将Web项目从早期版本Visual转换为ASP.NET 4 Studio会在Web.config中将网站默认设置为AutoID 文件


您可以在页面或应用程序级别禁用ASP.NET应用程序中的Id自动递增功能。对于页面级别,在@master指令中添加clientdmode=Static。对于应用程序级别,将clientdmode=Static添加到web.config

什么ASP.NET版本?为什么需要客户ID?在javascript中使用它?
<asp:LinkButton ID="lnkDistributors" ClientIDMode="Static"  
 runat="server" Text="Distributors">  </asp:LinkButton>