На моей веб-странице я использовал gridview. В этом gridview отображается группа пользователей. Я просто добавил одну кнопку из меню смарт-тегов. И мое требование состоит в том, что когда я нажимаю кнопку, соответствующую каждому пользователю, она перенаправляется на другую страницу и отображает соответствующую информацию пользователя. Что я делаю для получения этого типа вывода?
U нужно добавить кнопку и добавить атрибут CommandName:
<asp:Button ID="EditBtn" runat="server" CommandName="Edit" />
то в случае item item команды сетки сделайте следующее
protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
//Redirect to user page information
Response.Redirect(PageURL);
}
}
Ответ Ahmy - это путь, если вы хотите использовать кнопку и перенаправить страницу на другую страницу с информацией о пользователе. Однако одна вещь, которая была упущена, заключалась в том, что вы можете передать аргумент команды через кнопку (например, уникальный идентификатор пользователя), который вы могли бы затем ввести в очередь запроса страницы, на которую вы перенаправляете, для определения того, какой пользователь она есть. Это будет выглядеть так:
<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" />
Вместо кнопки сделайте один из столбцов гиперссылкой. При нажатии на элемент перенаправляется на новую страницу (используя Javascript). Благодаря этому вы можете избежать добавления дополнительного столбца для кнопки и обратной передачи.
Для этого вы должны использовать DataTextFormatString.
Пример
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="no" HeaderText="SNo" />
<asp:BoundField DataField="file" DataFormatString="<a href=javascript:ShowAssetDetail('{0}');>{0}</a>"
HeaderText="Asset Desc" HtmlEncodeFormatString="False" />
</Columns>
</asp:GridView>
В приведенном выше примере JS-функция ShowAssetDetail() должна принять значение для перехода на страницу перенаправления. Излишне говорить, что JS-функция должна быть написана дополнительно.