在asp.net中使用前缀'ct100'更改控件ID

Jag*_*esh 4 asp.net

检查我的页面控件ID就像 - ContentPlaceHolder1_lnkDistributors.

但是,在实时服务器中托管我的网站后,Prefix正在添加到上面的ID.

喜欢:ctl00_ContentPlaceHolder1_lnkDistributors.

<asp:LinkButton ID="lnkDistributors" runat="server" Text="Distributors">
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

请帮我.谢谢Adv.

Ema*_*eco 10

静态ClientIDMode旨在以IDHTML 控制; 但是你必须小心使用它:它不能保证页面中控件ID的唯一性.

<asp:LinkButton ID="lnkDistributors" ClientIDMode="Static"  
 runat="server" Text="Distributors">  </asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

如果您的控件的ClientIDMode设置为AutoID,则控件的ID将具有一个前缀以使其唯一.(例如,ID为"sam"的控件将变为"ct100_sam").如果您的控件将其ClientIDMode设置为Static,则不会更改ID并保持开发人员将其设置为的内容.


MSDN

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

自动识别

ClientID值是通过将每个父命名容器的ID值与控件的ID值连接而生成的.在呈现控件的多个实例的数据绑定方案中,将在控件的ID值前插入递增值.每个段由下划线字符(_)分隔.此算法用于早于ASP.NET 4的ASP.NET版本.

静态的

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

可预测的

此算法用于数据绑定控件中的控件.ClientID值是通过将父命名容器的ClientID值与控件的ID值连接而生成的.如果控件是生成多行的数据绑定控件,则会在末尾添加ClientIDRowSuffix属性中指定的数据字段的值.对于GridView控件,可以指定多个数据字段.如果ClientIDRowSuffix属性为空,则在末尾添加序号而不是数据字段值.此数字从零开始,每行增加1.每个段由下划线字符(_)分隔.

继承

该控件继承其NamingContainer控件的ClientIDMode设置.页面的ClientIDMode的默认值是Predictable.控件的ClientIDMode的默认值是Inherit.由于控件的默认值为Inherit,因此默认生成模式为Predictable.(但是,如果使用Visual Studio将Web项目从早期版本转换为ASP.NET 4,则Visual Studio会自动将站点默认设置为Web.config文件中的AutoID.)