2

List <Dictionary <string、string>>があります。GridViewのItemTemplateで、キーに基づいてディクショナリの値にバインドしたいと思います。

<ItemTemplate>
    <tr class="gridRow">
        <table width="100%">
            <tr><td><%# Eval("Lastname") %>, <%# Eval("Firstname") %> </td></tr>
            <tr><td><%# Eval("Address") %></td><td><%# Eval("Zipcode") %></td><td><%# Eval("City") %></td></tr>
        </table>
    </tr>
</ItemTemplate>

コードビハインドを使用せずにこれを行う方法はありますか?辞書に新しいキーが追加されたときにのみItemTemplateを変更する必要があります。

4

2 に答える 2

4
<%# ((Dictionary<string, string>)(Container.DataItem))["FirstName"] %>
于 2011-06-12T17:57:16.800 に答える
0

あなたが何をしているかを見るのに少し時間がかかりました。これができると思いますが、バインドされているアイテムを実際に評価する必要がある場合は、バインドに使用するより優れた構成があります。

とにかく、あなたが抱えている問題は、キーと値があり、「Firstname」、「Lastname」などがないことです。はい、それらの値を持つ文字列があることは知っていますが、それらは値の名前が付けられていません。ディクショナリには、キーと値のペアが含まれています。

私の解決策は、データをDataSetのような構造に入れることです。次に、列名に従ってバインドできます。キーと値のペアを適切にキャストして、名前でアイテムを取得できると思いますが、試していません。HalfTrackMindManが表示されますが、それが宣言型で機能するかどうかはわかりません。試してみる価値があります。

于 2011-06-12T18:11:07.357 に答える