检查我的页面控件 ID 时就像 - ContentPlaceHolder1_lnkDistributors。
但是,在实时服务器中托管我的网站后,前缀将添加到上述 ID。
喜欢:ctl00_ContentPlaceHolder1_lnkDistributors。
<asp:LinkButton ID="lnkDistributors" runat="server" Text="Distributors">
</asp:LinkButton>
请帮我。感谢进阶。
检查我的页面控件 ID 时就像 - ContentPlaceHolder1_lnkDistributors。
但是,在实时服务器中托管我的网站后,前缀将添加到上述 ID。
喜欢:ctl00_ContentPlaceHolder1_lnkDistributors。
<asp:LinkButton ID="lnkDistributors" runat="server" Text="Distributors">
</asp:LinkButton>
请帮我。感谢进阶。
静态 ClientIDMode旨在ID
在 HTML 中进行控制;但你必须小心使用它:它不保证页面中控件 ID 的唯一性。
<asp:LinkButton ID="lnkDistributors" ClientIDMode="Static"
runat="server" Text="Distributors"> </asp:LinkButton>
如果您的控件将其 ClientIDMode 设置为AutoID
,则控件的 ID 将具有前缀以使其唯一。(例如,ID 为“sam”的控件将变为“ct100_sam”)。如果您的控件将其 ClientIDMode 设置为Static
,则 ID 将不会更改并保持开发人员设置的内容。
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。因为控件的默认值是继承,所以默认生成模式是可预测的。(但是,如果您使用 Visual Studio 将 Web 项目从早期版本转换为 ASP.NET 4,Visual Studio 会自动将站点默认设置为 Web.config 文件中的 AutoID。)
我已添加ClientIDMode="Static"
到母版页。
<%@ Master ClientIDMode="Static"....
这里的 ID 会像:只有lnkDistributors,不像 ContentPlaceHolder1_lnkDistributors 或 ctl00_ContentPlaceHolder1_lnkDistributors。
现在它工作正常。
Id
您可以在页面或应用程序级别禁用 ASP.NET 应用程序中的自动递增。对于页面级别,ClientIDMode="Static"
在@master
指令中添加 。对于应用程序级别,添加ClientIDMode="Static"
到web.config
.