3

問題を解決するために頭を悩ませています。を返すメソッドがありますList<Object[]>

object[]リストのそれぞれには、次のものが含まれます。

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

今、私はこのリストをカスタムItemTemplateで ListView にバインドする方法を探しています。これは次のようになります。

<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>

どんな提案でも大歓迎です。

4

2 に答える 2

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>
于 2009-10-01T05:14:30.783 に答える
6

オブジェクト配列のリストは、項目を格納するのに適していません。項目を表すクラス、または @Canavar が提案した辞書の使用を検討する必要があります。そうすれば、よりクリーンな方法で Eval メソッドを使用できるようになります。

そうは言っても、現在の設定でバインドすることは可能ですが、構文が私の目を出血させます.

<asp:Label runat="server" ID="lblId"
    Text='<%# ((Object[])Container.DataItem)[0] %>' />
<asp:Label runat="server" ID="lblName"
    Text='<%# ((Object[])Container.DataItem)[1] %>' />
于 2009-10-01T05:37:55.013 に答える