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

属性值

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

属性

示例

以下示例演示 Label 包含在 控件中的 ListView 控件。 在 控件上 ListViewClientIDMode 属性设置为 PredictableClientIDRowSuffix 属性设置为 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 会自动在 AutoID Web.config file.)

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

适用于

另请参阅