다음을 통해 공유


DynamicControl.UIHint 속성

정의

데이터 필드를 렌더링하는 데 사용되는 필드 템플릿의 이름을 가져오거나 설정합니다.

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

속성 값

데이터 필드를 렌더링하는 데 사용되는 필드 템플릿의 이름입니다. 기본값은 데이터 필드 형식 또는 데이터 모델에 적용된 메타데이터 정보에 따라 필드 템플릿이 렌더링됨을 나타내는 빈 문자열("")입니다.

예제

다음 예제에서는 데이터 필드를 지정하여 다른 필드 템플릿을 사용하여 콘텐츠를 렌더링하는 방법을 보여 줍니다. 두 번째 예제에서는 속성에서 지정한 사용자 지정 필드 템플릿을 보여 냅니다 UIHint .

<%@ 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() %>"  />

설명

UIHint 속성을 사용하여 데이터 필드의 UI를 표시하는 데 사용할 필드 템플릿을 지정합니다. 기본적으로 필드 템플릿은 사용자 컨트롤이며 해당 이름에는 편집 작업 및 삽입 작업에 사용되는 필드 템플릿을 식별하는 접미사가 포함되어 있습니다. 접미사는 각각 _edit _insert. 값을 UIHint 속성으로 설정하면 접미사 없이 이름을 설정합니다. 동적 데이터는 속성 값을 평가하여 올바른 모드를 Mode 식별하고 올바른 필드 템플릿을 렌더링합니다.

속성이 UIHint 설정되지 않은 경우 기본적으로 동적 데이터는 필드 형식에 따라 필드 템플릿을 렌더링합니다. 자세한 내용은 ASP.NET 동적 데이터 스캐폴딩을 참조하세요.

속성을 사용하여 UIHint 지정하는 필드 템플릿은 컨트롤의 이 인스턴스와 관련이 있습니다 DynamicControl . 데이터 모델에 적용하여 전체 애플리케이션에서 데이터 필드에 사용되는 필드 템플릿을 UIHintAttribute 변경할 수도 있습니다. 속성을 설정하면 UIHint 데이터 모델에 적용된 메타데이터가 재정의됩니다. 메타데이터 특성에 대한 자세한 내용은 ASP.NET Dynamic Data를 참조하세요.

적용 대상

추가 정보