Доступ к данным строки Gridview внутри полей - PullRequest
0 голосов
/ 26 июля 2011

У меня есть Gridview, привязанный к источнику linqdatasource. У gridview есть FK. я хочу отобразить имя / текстовое поле вместо ключевого поля для этого столбца.

Я создал метод на своей странице ASP.NET, который в основном GetLookupForKey, который возвращает строку, когда предоставляется ключ. Однако я не знаю, как отправить данные столбца для конкретной строки в объявлении данных.

Это должно прояснить:

        <asp:TemplateField>
        <ItemTemplate>

        <asp:Literal ID="RoleName" runat="server" Text='<%#

GetRoleName (* Мне нужно отправить RoleId здесь *)%> '/>

RoleId является одновременно связанным полем и DataKeyName. Как я могу отправить RoleId моему методу? Кроме того, как я могу добиться этого без использования какого-либо кода?

Спасибо

1 Ответ

1 голос
/ 26 июля 2011

Прямо сейчас я вижу два пути, может быть, даже больше.

1) С кодом позади

<asp:Literal ID="RoleName" runat="server" Text='<%# GetRoleName(Eval("RoleId")) %>'/>

Для этого потребуется защищенный метод GetRoleName(object roleId) в коде страницы за классом.

2) Без кода

Я предполагаю, что объекты Role и все объекты, на которые они ссылаются, оба объявлены в контексте Linq. Если это так, Linq может (и даже делает это по умолчанию) генерировать свойства для ссылочных объектов. То есть, когда у вас есть таблица с FK до Role, соответствующий объект будет иметь свойства RoleID и Role. Поэтому все можно сделать декларативно:

<asp:Literal ID="RoleName" runat="server" Text='<%# Eval("Role.Name") %>'/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...