редактирование сетки

2

На моей веб-странице я использовал gridview. В этом gridview отображается группа пользователей. Я просто добавил одну кнопку из меню смарт-тегов. И мое требование состоит в том, что когда я нажимаю кнопку, соответствующую каждому пользователю, она перенаправляется на другую страницу и отображает соответствующую информацию пользователя. Что я делаю для получения этого типа вывода?

Теги:
sql-server

3 ответа

3
Лучший ответ

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);
        }
    }
3

Ответ 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" />
1

Вместо кнопки сделайте один из столбцов гиперссылкой. При нажатии на элемент перенаправляется на новую страницу (используя Javascript). Благодаря этому вы можете избежать добавления дополнительного столбца для кнопки и обратной передачи.

Для этого вы должны использовать DataTextFormatString.

Пример

        <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="no" HeaderText="SNo" />
            <asp:BoundField DataField="file" DataFormatString="&lt;a href=javascript:ShowAssetDetail('{0}');&gt;{0}&lt;/a&gt;"
                HeaderText="Asset Desc" HtmlEncodeFormatString="False" />
        </Columns>
    </asp:GridView>

В приведенном выше примере JS-функция ShowAssetDetail() должна принять значение для перехода на страницу перенаправления. Излишне говорить, что JS-функция должна быть написана дополнительно.

  • 1
    Добавление гиперссылки - это хорошая идея, но вы делаете это в обратном направлении, вам следует использовать HyperLinkField для настройки вашего столбца.
  • 0
    Две проблемы 1. Чтобы использовать HyperLinkField, я думаю, мы должны использовать шаблоны. 2. Я предпочел гиперссылку HTML, чтобы избежать кода позади и туда и обратно. В любом случае, спасибо за ответ

Ещё вопросы

Сообщество Overcoder
Наверх
Меню