Привязка к словарю в шаблоне элемента - PullRequest
2 голосов
/ 12 июня 2011

У меня есть список <словарь <строка, строка >>. В ItemTemplate моего GridView я хотел бы привязать значения в словаре на основе их ключей.

<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 только при добавлении новых ключей в словарь.

Ответы [ 2 ]

4 голосов
/ 12 июня 2011
<%# ((Dictionary<string, string>)(Container.DataItem))["FirstName"] %>
0 голосов
/ 12 июня 2011

Мне потребовалась секунда, чтобы увидеть, что вы делаете.Я хотел бы представить, что вы можете сделать это, но есть гораздо лучшие конструкции, которые можно использовать для связывания, когда вам нужно реально оценить привязываемый элемент.

В любом случае, проблема в том, что у вас есть ключ и значение, у вас нет «Имя», «Фамилия» и т. Д. Да, я знаю, что у вас есть строки, в которых есть эти значения, ноони не названы значениями.Словарь содержит пару ключ-значение.

Мое решение состояло бы в том, чтобы поместить данные в конструкцию, подобную DataSet.Затем вы можете связать в соответствии с именем столбца.Я полагаю, что вы можете правильно разыграть пару ключ-значение и затем получить элемент по имени, но я не пробовал его.Я вижу HalfTrackMindMan, но я не уверен, что это будет работать декларативно.Стоит попробовать.

...