2013-11-26 3 views
1

Я использую GridView в ASP.net с добавленными кнопками. источник данных GridView является из списка BookingRowStatusКнопка GridView выполняет другое событие, отличное от RowCommand

BookingRowStatus(Row, m_AStatus, m_BStatus, m_CStatus, m_DStatus, m_EStatus, m_FStatus) 

аргументов, которые вы можете увидеть являются столбцами. Я добавил событие RowCreated, чтобы проверить m_XStatus, чтобы включить/отключить кнопки в зависимости от текста внутри него («X» = отключить | «Y» = включить).

Далее я добавил событие RowCommand, которое должно поймать событие при нажатии кнопки в GridView. Однако, всякий раз, когда я нажимаю кнопку, он вызывает RowCreated вместо RowCommand. Я добавил точку прерывания для обоих указанных событий, и я вижу, что она даже не пропускает RowCommand; он идет прямо к RowCreated.

Мой вопрос: как я могу вызвать RowCommand, когда я нажимаю кнопку на DataGrid?

+0

Я отредактировал ваше название. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

0

Событие RowCreated будет срабатывать до того, как событие RowCommand будет удалено, поскольку дочерние элементы управления (т. Е. Строки) будут созданы после сообщения, прежде чем вы сможете получить доступ к значениям из них.

Установите точку останова в обоих и проверьте, оба ли они запускаются.

Хотя ваше решение должно работать, более простым решением было бы привязать Button непосредственно к значению полей. Например.

<asp:Button runat="server" Enabled='<%# Eval("m_XStatus") = "Y" #>' /> 
Смежные вопросы