나는 List<string>
Repeater 컨트롤에 바인딩하고 있습니다. 이제이 Eval
기능 을 사용 하여 내용을 다음 ItemTemplate
과 같이 표시하고 싶습니다.
<%# Eval("NAME") %>.
하지만 NAME 대신 무엇을 사용해야하는지 잘 모르겠습니다.
나는 List<string>
Repeater 컨트롤에 바인딩하고 있습니다. 이제이 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 조건 연산자 Container.DataItem? .ToString ()을 사용할 수 없습니다.
rptSample.DataSource = from c in lstSample select new { NAME = c };
당신이 넣은 중계기에
<%# Eval("NAME") %>
@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>
내부 항목 템플릿
<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()%>