2009-10-01 104 views
2

我打破了我的頭來解決問題。我有一個方法返回List<Object[]>將對象數組的列表綁定到ASP.NET中的ListView中

在列表中的每個object[]包含以下內容:

object[0]=Id; 
object[1]=Name; 

現在,我正在尋找一種方式來名單綁定到ListView在自定義ItemTemplate這將如下所示:

<asp:Label runat="server" ID="lblId" 
    Text="Here want to do an Eval/Bind for object[0]"></asp:Label> 

<asp:Label runat="server" ID="lblName" 
    Text="Here want to do an Eval/Bind for object[1]"></asp:Label> 

任何建議將深受讚賞。

回答

6

您的數據源不能用於標準數據綁定。將其轉換爲名稱值對,該名稱值對將會綁定每個項目的名稱和值。例如Dictionary<string, string>集合與此兼容。然後就是把你的ListView這樣:

<asp:Label runat="server" ID="lblId" 
    Text='<%# Eval("Key") %>'></asp:Label> 

<asp:Label runat="server" ID="lblName" 
    Text='<%# Eval("Value") %>'></asp:Label> 
5

對象數組列表是一個糟糕的選擇來存儲項目您應該考慮使用表示該項目類,或如字典建議@Canavar。然後,您將能夠以更簡潔的方式使用Eval方法。

也就是說,可以使用當前設置進行綁定,但語法會使我的眼睛流血。

<asp:Label runat="server" ID="lblId" 
    Text='<%# ((Object[])Container.DataItem)[0] %>' /> 
<asp:Label runat="server" ID="lblName" 
    Text='<%# ((Object[])Container.DataItem)[1] %>' /> 
相關問題