programing

ASP.NET 리피터 바인딩 목록

newstyles 2023. 4. 29. 08:55

ASP.NET 리피터 바인딩 목록

나는 구속력이 있습니다.List<string>리피터 컨트롤로 이동합니다.이제 사용하고 싶습니다.Eval내용을 표시하는 기능ItemTemplate맘에 들다

<%# Eval("NAME") %>.  

하지만 NAME 대신 무엇을 사용해야 할지 잘 모르겠습니다.

그냥 사용하기<%# Container.DataItem.ToString() %>

null 값이 걱정되는 경우 이 값(.NET 6+)

<asp:Repeater ID="repeater" runat="server">
    <ItemTemplate>
        <%# Container.DataItem?.ToString() ?? string.Empty%>
    </ItemTemplate>
</asp:Repeater>

보다 적게 사용하는 경우 참고하십시오.NET 6 null 조건 연산자 컨테이너를 사용할 수 없습니다.데이터 항목?문자열로()

항목 유형을 시스템으로 설정합니다.

<asp:Repeater ItemType="System.String" runat="server">
    <ItemTemplate>
        <%# Item %>
    </ItemTemplate>
</asp:Repeater>
rptSample.DataSource = from c in lstSample select new { NAME = c };

당신이 넣은 리피터에.

<%# Eval("NAME") %>

이것은 잘 작동할 것입니다.

<ItemTemplate>
   <%=this.GetDataItem().ToString() %>
</ItemTemplate>

@RobertoBr에서 제공하는 LINQ를 기반으로 한 보다 완벽한 예:

코드 배경:

List<string> notes = new List<string>();
notes.Add("Value1")
notes.Add("Value2")

repeaterControl1.DataSource = from c in notes select new {NAME = c};
repeaterControl1.DataBind();

페이지:

   <asp:Repeater ID="repeaterControl1" runat="server" >
    <ItemTemplate>
        <li><%# Eval("NAME")  %></li>
    </ItemTemplate>
    </asp:Repeater>

여기서 데이터 바인딩 구문을 사용해야 합니다. 그렇지 않으면 작동하지 않습니다.

<%# this.GetDataItem().ToString() %>

내부 항목 템플릿

     <ItemTemplate>
 <asp:Label ID="lblName"  runat="server" Text='<%# Eval("YourEntityName").ToString() ==""? "NA" : Eval("YourEntityName").ToString()%>'></asp:Label>
    <ItemTemplate>

또는 단순히 항목 템플릿 내부에 추가

<%# Eval("YourEntityName").ToString() ==""? "NA" : Eval("YourEntityName").ToString()%>

언급URL : https://stackoverflow.com/questions/5011617/asp-net-repeater-bind-liststring