템플릿 데이터 바인딩 컨트롤을 통해 페이지의 데이터를 융통성있게 렌더링할 수 있습니다. DataList와 Repeater 컨트롤과 같은 ASP.NET v1.x의 많은 템플릿 컨트롤은 ASP.NET 2.0에서도 계속해서 지원되지만 이번 릴리스에서는 템플릿 내부에서 컨트롤 데이터를 바인딩하는 방법이 단순화되고 향상되었습니다. 이 단원에서는 데이터 바인딩 컨트롤 템플릿 내부에서 데이터를 바인딩하는 여러 가지 방법에 대해 설명합니다.

ASP.NET 2.0에서는 데이터 바인딩 구문을 DataBinder.Eval(Container.DataItem, fieldname)의 전체 v1.x 구문에서 Eval(fieldname)로 단순화하여 템플릿에서의 데이터 바인딩 기능을 향상시켰습니다. DataBinder.Eval과 마찬가지로 Eval 메서드도 선택적

formatString 매개 변수를 사용합니다.

간단해진 Eval 구문은 DataBinder.Eval과 차이점이 있습니다.

즉, Eval은 가장 가까운 컨테이너 개체(위 예제에서는 DataListItem)의 DataItem 속성에 대해 필드를 자동으로 확인하지만 DataBinder.Eval은 컨테이너에 대한 인수를 사용합니다.

따라서 Eval은 데이터 바인딩 컨트롤의 템플릿 내부에서만 사용되며 페이지 수준에서는 사용할 수 없습니다.

물론 DataBinder.Eval도 ASP.NET 2.0 페이지에서 계속해서 지원되므로 단순화된 Eval 구문이 지원되지 않는 시나리오에서 대신 사용하면 됩니다.

<asp:DataList DataSourceID="ObjectDataSource1" runat="server">
  <ItemTemplate>
    <asp:Image ImageUrl='<%# Eval("FileName", "images/thumbs/{0}") %>' runat="server"/>
    <asp:Label Text='<%# Eval("Caption") %>' runat="server"/>
  </ItemTemplate>
</asp:DataList>

두개 인자값넘길때

<asp:HyperLink ID="HyperLink1" runat="server" Text='<%#Eval("m_id") %>' NavigateUrl='<%# "/main.aspx?m_id="+Eval("m_id")+"&idx="+Eval("idx")  %>'>

</asp:HyperLink>

+ Recent posts