редактирование сетки - PullRequest
       7

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

2 голосов
/ 15 июля 2009

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

Ответы [ 3 ]

3 голосов
/ 15 июля 2009

Ответ Ахми - это путь, если вы хотите использовать кнопку и перенаправить страницу на другую страницу с информацией пользователя. Однако было упущено, что вы можете передать командный аргумент через кнопку (например, уникальный идентификатор пользователя), которую затем можете вставить в строку запроса страницы, на которую вы перенаправляете, чтобы определить, какой это пользователь. Это будет выглядеть так:

<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" />
3 голосов
/ 15 июля 2009

U нужно добавить кнопку и добавить атрибут CommandName:

<asp:Button ID="EditBtn" runat="server" CommandName="Edit" />

, затем в случае itemcommand сетки сделайте следующее

  protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Edit")
        {
            //Redirect to user page information
            Response.Redirect(PageURL);
        }
    }
1 голос
/ 15 июля 2009

Вместо кнопки сделайте один из столбцов гиперссылками. При нажатии на элемент, перенаправьте на новую страницу (используя 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 должна быть написана дополнительно.

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