Control.ClientIDMode 属性

定义

获取或设置用于生成 ClientID 属性值的算法。

public:
 virtual property System::Web::UI::ClientIDMode ClientIDMode { System::Web::UI::ClientIDMode get(); void set(System::Web::UI::ClientIDMode value); };
[System.Web.UI.Themeable(false)]
public virtual System.Web.UI.ClientIDMode ClientIDMode { get; set; }
[<System.Web.UI.Themeable(false)>]
member this.ClientIDMode : System.Web.UI.ClientIDMode with get, set
Public Overridable Property ClientIDMode As ClientIDMode

属性值

ClientIDMode

一个值,指示如何生成 ClientID 属性。 默认值为 Inherit

属性

示例

以下示例显示 Label 控件中包含的 ListView 控件。 在控件上 ListView ,该 ClientIDMode 属性设置为 Predictable 该属性,并且该 ClientIDRowSuffix 属性设置为 ProductID。 在呈现的 HTML 中,这将创建三个对应于三span``ProductIDLabel个控件的元素。 当页面运行时, id 元素的属性 span 将设置为以下值:

  • ListView1_ProductIDLabel_1
  • ListView1_ProductIDLabel_34
  • ListView1_ProductIDLabel_43
<asp:XmlDataSource ID="XmlDataSource1" runat="server" 
                   XPath="Products/Product">
  <Data>
    <Products>
      <Product ProductID="1"  ProductName="Chai" />
      <Product ProductID="34" ProductName="Ale" />
      <Product ProductID="43" ProductName="Coffee" />
    </Products>
  </Data>
</asp:XmlDataSource>

<asp:ListView ID="ListView1" 
              ClientIDMode="Predictable" 
              ClientIDRowSuffix="ProductID"  
              DataSourceID="XmlDataSource1" runat="server" >
  <ItemTemplate>
    ProductID: 
    <asp:Label ID="ProductIDLabel" runat="server" 
               Text='<%# Eval("ProductID") %>' />
    <br />
    ProductName:
    <asp:Label ID="ProductNameLabel" runat="server" 
               Text='<%# Eval("ProductName") %>' />
    <br />
    <br />
  </ItemTemplate>

  <LayoutTemplate>
    <div ID="itemPlaceholderContainer" runat="server">
      <span ID="itemPlaceholder" runat="server" />
    </div>
    <div>
    </div>
  </LayoutTemplate>
  
</asp:ListView>

注解

ASP.NET 提供了多个算法来生成ClientID属性值。 通过设置控件 ClientIDMode 属性选择要用于控件的算法。 算法由 ClientIDMode 下表中列出的枚举值标识。

说明
AutoID ClientID 值是通过串联每个父命名容器的 ID 值生成的,这些父命名容器都具有控件的 ID 值。 在呈现控件的多个实例的数据绑定方案中,将在控件的 ID 值的前面插入递增的值。 各部分之间用下划线字符 (_) 分隔。 此算法在早于 ASP.NET 4 的 ASP.NET 版本中使用。
Static ClientID 值设置为 ID 属性的值。 如果控件是命名容器,则该控件将用作其所包含的任何控件的命名容器的顶层。
Predictable 对于数据绑定控件中的控件使用此算法。 ClientID 值是通过串联每个父命名容器的 ClientID 值生成的,这些父命名容器都具有控件的ID 值。 如果控件是生成多个行的数据绑定控件,则在末尾添加 ClientIDRowSuffix 属性中指定的数据字段的值。 对于 GridView 控件,可以指定多个数据字段。 ClientIDRowSuffix如果该属性为空,则会在末尾添加一个序列号,而不是数据字段值。 此数字从零开始,每行的增量为 1。 各部分之间用下划线字符 (_) 分隔。
Inherit 控件继承其 NamingContainer 控件的 ClientIDMode 设置。

页面的 ClientIDMode 默认值为 Predictable。 控件的 ClientIDMode 默认值为 Inherit。 由于控件的默认值为 Inherit,因此默认生成模式为 Predictable。 但是, (如果使用Visual Studio将 Web 项目从早期版本转换为 ASP.NET 4,Visual Studio会自动将网站默认设置为AutoIDWeb.config file.)

有关详细信息,请参阅 ASP.NET Web 服务器控件标识

适用于

另请参阅