Saya mengikat List<string>
kontrol Repeater. Sekarang saya ingin menggunakan Eval
fungsi untuk menampilkan konten ItemTemplate
seperti
<%# Eval("NAME") %>.
Tapi saya tidak yakin apa yang harus saya gunakan selain NAME.
Saya mengikat List<string>
kontrol Repeater. Sekarang saya ingin menggunakan Eval
fungsi untuk menampilkan konten ItemTemplate
seperti
<%# Eval("NAME") %>.
Tapi saya tidak yakin apa yang harus saya gunakan selain NAME.
Jawaban:
Gunakan saja <%# Container.DataItem.ToString() %>
Jika Anda khawatir tentang nilai nol, Anda mungkin ingin melakukan refaktorisasi ini (.NET 6+)
<asp:Repeater ID="repeater" runat="server">
<ItemTemplate>
<%# Container.DataItem?.ToString() ?? string.Empty%>
</ItemTemplate>
</asp:Repeater>
Catatan jika Anda menggunakan kurang dari .NET 6 Anda tidak dapat menggunakan operator bersyarat null Container.DataItem? .ToString ()
rptSample.DataSource = from c in lstSample select new { NAME = c };
di repeater yang Anda masukkan
<%# Eval("NAME") %>
Ini seharusnya bekerja dengan baik:
<ItemTemplate>
<%=this.GetDataItem().ToString() %>
</ItemTemplate>
Contoh yang lebih lengkap berdasarkan LINQ yang disediakan oleh @RobertoBr:
Dalam kode di belakang:
List<string> notes = new List<string>();
notes.Add("Value1")
notes.Add("Value2")
repeaterControl1.DataSource = from c in notes select new {NAME = c};
repeaterControl1.DataBind();
Di halaman:
<asp:Repeater ID="repeaterControl1" runat="server" >
<ItemTemplate>
<li><%# Eval("NAME") %></li>
</ItemTemplate>
</asp:Repeater>
Di dalam Template Item
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("YourEntityName").ToString() ==""? "NA" : Eval("YourEntityName").ToString()%>'></asp:Label>
<ItemTemplate>
atau Cukup Tambahkan di dalam Template Item
<%# Eval("YourEntityName").ToString() ==""? "NA" : Eval("YourEntityName").ToString()%>