Добавление LinkButtons к строкам DataGrid в ItemDataBound - PullRequest
0 голосов
/ 13 мая 2011

У меня довольно стандартная DataGrid. Он содержит несколько BoundColumns. Я перегружаю один из этих столбцов, чтобы он содержал либо текст, либо LinkButton, в зависимости от некоторых характеристик связанного элемента.

Итак ... в событии ItemDataBound для Grid я проверяю несколько вещей и добавляю либо элемент управления Label, либо элемент управления LinkButton в соответствующую ячейку.

Если я нажимаю на одну из этих кнопок LinkButton, происходит обратная передача, но она не вызывает метод в обработчике события кнопки.

Я видел, как некоторые люди говорили, что события не будут работать, если вы создадите элементы управления ПОСЛЕ события страницы PreInit. Это правда? Если так, должен ли быть способ, которым я могу вручную подключить их?

Я попытался создать все кнопки в PreInit и добавить их только в ItemDataBound, что неудивительно, что не сработало.

Я слышал, как другие говорили, что кнопки и каждый родительский элемент управления должны иметь уникальный идентификатор. Это правда?

Вместо того, чтобы слепо отмахиваться от этого, я бы хотел точно понять, почему я не могу этого сделать.

Спасибо

1 Ответ

1 голос
/ 13 мая 2011

Насколько я понимаю, если вы помещаете кнопку ссылки в DataGrid, вам нужно использовать RowCommand, т.е.

<asp:LinkButton ID="btnUpdate" CommandName="Something" CommandArgument='<%# Bind("something") %>' runat="server">Update</asp:LinkButton>

Затем вам нужно связать событие OnRowCommand с функцией в вашей DataGrid. Это передаст Аргумент Команды, который был дан кнопке связи, и название команды в Аргументе События. Вы можете использовать это, чтобы отреагировать соответствующим образом на событие.

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