Freigeben über


DynamicControl.UIHint Eigenschaft

Definition

Ruft den Namen der Feldvorlage ab, die zum Rendern des Datenfelds verwendet wird, oder legt diesen fest.

public:
 virtual property System::String ^ UIHint { System::String ^ get(); void set(System::String ^ value); };
public virtual string UIHint { get; set; }
member this.UIHint : string with get, set
Public Overridable Property UIHint As String

Eigenschaftswert

String

Der Name der Feldvorlage, die zum Rendern des Datenfelds verwendet wird. Der Standardwert ist eine leere Zeichenfolge (""). Dies bedeutet, dass die Feldvorlage auf der Grundlage des Datenfeldtyps oder anhand von auf das Datenmodell angewendeten Metadateninformationen gerendert wird.

Beispiele

Sehen Sie sich ein Beispiel für den Laufzeitcode dieses Features an: Ausführen.

Im folgenden Beispiel wird gezeigt, wie Sie ein Datenfeld angeben können, um eine andere Feldvorlage zum Rendern des Inhalts zu verwenden. Das zweite Beispiel zeigt die benutzerdefinierte Feldvorlage, die von der UIHint Eigenschaft angegeben wird.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  protected void Page_Init(object sender, EventArgs e)
  {
    DynamicDataManager1.RegisterControl(Repeater1);
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>DynamicControl.UIHint Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
        AutoLoadForeignKeys="true" />
        
      <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource1">
        <HeaderTemplate>
          <table border="1">
            <tr>
               <th>First Name</th>
               <th>Last Name</th>
               <th>Email</th>
            </tr>        
        </HeaderTemplate>
        <ItemTemplate>
          <tr>
            <td><asp:DynamicControl runat="server" DataField="FirstName" /></td>
            <td><asp:DynamicControl runat="server" DataField="LastName" /></td>
            <td><asp:DynamicControl runat="server" DataField="EmailAddress" UIHint="Email" /> </td>
          </tr>
        </ItemTemplate>
        <FooterTemplate>
          </table>
        </FooterTemplate>
      </asp:Repeater>

      <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        TableName="Customers"
        ContextTypeName="AdventureWorksLTDataContext">
      </asp:LinqDataSource>
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)    
    DynamicDataManager1.RegisterControl(Repeater1)
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>DynamicControl.UIHint Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
        AutoLoadForeignKeys="true" />
        
      <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource1">
        <HeaderTemplate>
          <table border="1">
            <tr>
               <th>First Name</th>
               <th>Last Name</th>
               <th>Email</th>
            </tr>        
        </HeaderTemplate>
        <ItemTemplate>
          <tr>
            <td><asp:DynamicControl runat="server" DataField="FirstName" /></td>
            <td><asp:DynamicControl runat="server" DataField="LastName" /></td>
            <td><asp:DynamicControl runat="server" DataField="EmailAddress" UIHint="Email" /> </td>
          </tr>
        </ItemTemplate>
        <FooterTemplate>
          </table>
        </FooterTemplate>
      </asp:Repeater>

      <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        TableName="Customers"
        ContextTypeName="AdventureWorksLTDataContext">
      </asp:LinqDataSource>
    </div>
    </form>
</body>
</html>
<%@ Control Language="C#" ClassName="Email" Inherits="System.Web.DynamicData.FieldTemplateUserControl"%>

<script runat="server">
  protected string GetNavigateUrl()
  {
    if (!String.IsNullOrEmpty(FieldValueString))
    {
      return "mailto:" + FieldValueString;
    }

    return string.Empty;
  }
</script>

<asp:HyperLink ID="EmailAddressLink" runat="server"
    Text="<%# FieldValueString %>"
    NavigateUrl="<%# GetNavigateUrl() %>"  />
<%@ Control Language="VB" ClassName="Email" Inherits="System.Web.DynamicData.FieldTemplateUserControl"%>

<script runat="server">
    
    Protected Function GetNavigateUrl() As String

        If (Not String.IsNullOrEmpty(FieldValueString)) Then
            Return "mailto:" & FieldValueString
        End If
    
        Return String.Empty

    End Function
    
</script>

<asp:HyperLink ID="EmailAddressLink" runat="server"
    Text="<%# FieldValueString %>"
    NavigateUrl="<%# GetNavigateUrl() %>"  />

Hinweise

Verwenden Sie die UIHint Eigenschaft, um die Feldvorlage anzugeben, mit der die Benutzeroberfläche für ein Datenfeld angezeigt werden soll. Feldvorlagen sind standardmäßig Benutzersteuerelemente und deren Namen enthalten ein Suffix, um Feldvorlagen zu identifizieren, die für Bearbeitungsvorgänge und Einfügen von Vorgängen verwendet werden. Die Suffixe sind _edit und _insert bzw. _insert. Wenn Sie einen Wert auf die UIHint Eigenschaft festlegen, legen Sie den Namen ohne Suffixe fest. Dynamische Daten identifizieren den richtigen Modus, indem der Mode Eigenschaftswert ausgewertet wird und die richtige Feldvorlage gerendert wird.

Wenn die UIHint Eigenschaft nicht festgelegt ist, rendert dynamic Data standardmäßig die Feldvorlage basierend auf dem Feldtyp. Weitere Informationen finden Sie unter ASP.NET Dynamische Datengerüste.

Die Feldvorlage, die Sie mit der UIHint Eigenschaft angeben, ist für diese Instanz des DynamicControl Steuerelements spezifisch. Sie können auch die Feldvorlage ändern, die von einem Datenfeld in der gesamten Anwendung verwendet wird, indem Sie das UIHintAttribute Datenmodell anwenden. Durch Festlegen der Eigenschaft wird die UIHint auf das Datenmodell angewendeten Metadaten außer Kraft gesetzt. Weitere Informationen zu Metadatenattributen finden Sie unter ASP.NET Dynamische Daten.

Gilt für

Siehe auch