asp.net: как мне связать LinkButton-подобные функции связывания с делегатами на фоне ячейки таблицы? - PullRequest
1 голос
/ 30 апреля 2009

Я использую пользовательские элементы управления ASP.NET. Я передаю значения другому пользовательскому элементу управления через аргументы команды через кнопку ссылки следующим образом:

жерех:

LinkButton ID="ZoomPhotoLinkButton" CommandArgument='<%#(Eval("conid"))%>' CommandName="PassItemId" runat="server">Zoom It</asp:LinkButton>

Что я действительно хочу, так это сделать всю фоновую ячейку моей таблицы интерактивной, чтобы щелчок в любом месте ячейки таблицы передавал соответствующие CommandName и CommandArgument и соответственно связывал.

До того, как я настроил это с делегатами, у меня было вышеупомянутое поведение, работавшее следующим образом с простыми функциями JavaScript и встроенным кодом, передавающими URL-адреса во встроенный JavaScript:

(я использую квадратные, а не угловые скобки, потому что StackOverFlow пытается проанализировать мой «табличный код»):

[td] onclick="window.location='<%# FormatDetailPageUrl((object)Eval("conid"))%>'" style='cursor:pointer;text-align: center; border:0px;'[/td]

Я пытаюсь сделать что-то функционально эквивалентное с точки зрения щелчка по ячейке таблицы, за исключением вызова соответствующего CommandName и CommandArgument вместо простого Javascript.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2009

Вы, вероятно, можете достичь этой стороны клиента, например, используя jQuery.

Посмотрите на эту статью, которая делает то же самое (с DIV вместо TD): http://newism.com.au/blog/post/58/bigtarget-js-increasing-the-size-of-clickable-targets/

0 голосов
/ 30 апреля 2009

ASP.Net использует функцию __doPostBack () для выполнения этой магии. Вы можете назвать это сами; первый параметр - eventTarget, второй параметр - eventArgument.

Итак, в вашем случае вы можете сделать следующее:

<td onclick="__doPostBack('PassItemId', '<%#(Eval("conid"))%>')"></td>

Возможно, вы также захотите взглянуть на Page.GetPostBackEventReference

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