gridview编辑

时间:2009-07-15 10:54:17

标签: c# asp.net sql-server

在我的网页中,我使用了gridview。在此gridview中,它显示了一组用户信息。 我刚从智能标签菜单中添加了一个按钮。我的要求是,当我按下与每个用户相对应的按钮时,它将重定向到另一个页面并显示相应用户的信息。我做了什么来获得这种类型的输出?

3 个答案:

答案 0 :(得分:3)

你必须添加按钮并添加属性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 :(得分:3)

如果您想使用按钮并将页面重定向到包含用户信息的其他页面,那么Ahmy的答案是可行的方法。然而,遗漏的一件事是您可以通过按钮传递命令参数(如用户的唯一ID),然后您可以将其放入要重定向到的页面的查询字符串中,以识别它是哪个用户。这看起来像这样:

<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" />

答案 2 :(得分: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函数必须另外编写。