Ответ Ахми - это путь, если вы хотите использовать кнопку и перенаправить страницу на другую страницу с информацией пользователя. Однако было упущено, что вы можете передать командный аргумент через кнопку (например, уникальный идентификатор пользователя), которую затем можете вставить в строку запроса страницы, на которую вы перенаправляете, чтобы определить, какой это пользователь. Это будет выглядеть так:
<asp:TemplateField HeaderText="Edit User">
<ItemTemplate>
<asp:Button ID="EditBtn" Text="Edit User" CommandName="Edit"
CommandArgument='<%# Eval("UserID") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
Тогда в коде
protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
//Redirect to user page information
Response.Redirect("UserProfilePage.aspx?userID=" + e.CommandArgument);
}
}
Другая альтернатива использованию кнопки, которая, на мой взгляд, является наилучшим вариантом, - это использование HyperLinkField. При использовании кнопки страница должна будет отправляться обратно на сервер, а затем отправлять перенаправление в браузер пользователя. С гиперссылкой пользователь сразу переходит на нужную страницу. Это экономит шаг и не зависит от JavaScript.
<asp:HyperLinkField DataTextField="UserName" DataNavigateUrlFields="UserID"
DataNavigateUrlFormatString="UserProfilePage.aspx?userID={0}"
HeaderText="Edit User" />