Список> как источник данных для GridView - PullRequest
4 голосов
/ 06 июня 2011

Я хотел бы добавить List<Tuple<T1,T2>> как DataSource для моего GridView.

«Тогда сделай это!»

Да, проблема не в этом, проблема в доступе к значениям внутри GridView.

Вот мой код:

List<Tuple<Group, string>> userGroups = Util.PrepareGroups((string[][])Session["userGroups"]);
            gridGroups.DataSource = userGroups;
            gridGroups.DataBind();

Выдает исключение на DataBind, сообщая мне, что Item1.Name не существует, говоря об этом, вот моя разметка:

<asp:GridView runat="server" ID="gridGroups" CssClass="grid gridGroups" AutoGenerateColumns="false">
            <Columns>
            <asp:BoundField meta:resourcekey="gridGroupsName" DataField="Item1.Name" />
            <asp:BoundField meta:resourcekey="gridGroupsFunction" DataField="Item2" />
            </Columns>
        </asp:GridView>

Излишне говорить, что Item1 - это группа, а Name - это string -свойство.
Он (да, он, моя IDE называется Боб), очевидно, не находит Item1.Name, есть ли способ избежать .?

Спасибо

Dennis

1 Ответ

3 голосов
/ 06 июня 2011

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

(ps - не забудьте проверить свойство rowtype в вашем обработчике событий, легко ошибиться - вы получите неожиданные результаты / ошибки, если попытаетесь получить доступ к объекту данных для строки верхнего / нижнего колонтитула! - ссылка выше имеет некоторый код, демонстрирующий это)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...