Как я могу назначить функцию обратного вызова для asp: HyperlinkField? - PullRequest
3 голосов
/ 26 июня 2009

Я хочу, чтобы люди нажимали на ссылку (сгенерированную из asp: HyperlinkField) и заставляли ее вызывать метод на сервере, а не перенаправлять пользователя куда-либо. Кто-нибудь знает, как это сделать?

Спасибо,
Matt

Ответы [ 4 ]

1 голос
/ 26 июня 2009

HyperLinkField используется для создания простых гиперссылок в элементах управления с привязкой к данным. Вместо этого вы можете использовать ButtonField . Или вы можете определить свою собственную ссылку с помощью TemplateField .

Вот пример создания столбца ссылок, который имеет событие на стороне сервера:

<asp:templatefield headertext="Link Column">
    <itemtemplate>
      <asp:LinkButton ID="myLink" 
            CommandName="MyLinkCommand" 
            CommandArgument='<%#Bind("TableID") %>'
            runat="server">My Link</asp:LinkButton>
    </itemtemplate>
</asp:templatefield>

Под кодом:

protected void YouGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "MyLinkCommand")
    {
        // Do stuff
    }
}
1 голос
/ 26 июня 2009

Я бы вместо этого использовал asp: CommandField или asp: ButtonField и использовал ButtonType = Link - он будет выглядеть так же, как ваше поле ссылок, а затем вы можете обработать событие OnRowCommand в вашей сетке для запуска кода.

1 голос
/ 26 июня 2009

Используйте вместо этого asp: LinkButton. Если нет особой причины, по которой вы привязаны к asp: Hyperlink?

0 голосов
/ 26 июня 2009

Почему бы вместо этого не использовать ButtonField и установить для свойства ButtonType значение Link? Это будет выглядеть как гиперссылка.

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