首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑Gridview_Sorting之后的混乱

编辑Gridview_Sorting之后的混乱
EN

Stack Overflow用户
提问于 2009-04-17 14:10:39
回答 3查看 326关注 0票数 0

我有一个web应用程序(ASP.NET 2.0 C#),其中一个页面上有一个GridviewGridview有3列(编辑、ID、名称),并且启用了排序。编辑不是以常规方式工作的:它使用ID并将其添加到QueryString,然后用户被带到编辑页面。如下所示:

代码语言:javascript
复制
protected void Grid_RowEditing(object sender, GridViewEditEventArgs e)
{
   string editID = Grid.DataKeys[e.NewEditIndex].Value.ToString();  
   Response.Redirect("~/Admin/Edit_Page.aspx?EditID=" +
                     HttpUtility.HtmlDecode(editID));
}

当页面加载时,网格无论如何都不会排序。如果我单击“编辑”,它就能正常工作。但是,如果我在排序后单击Edit,它将传递排序前最初在那里的行的ID,而不是当前行的ID。

为什么会发生这种情况?有什么想法吗?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2009-04-17 14:15:26

您是否正在重新绑定您的数据集?

票数 1
EN

Stack Overflow用户

发布于 2009-04-17 14:30:35

在页面加载时,尝试在页面未回发时绑定网格。我指的是页面加载中的以下代码:

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
        PopulateGrid();
}

这是因为我怀疑,网格在每次回帖时都会被重新绑定,这可能会导致问题。

票数 0
EN

Stack Overflow用户

发布于 2009-04-17 15:19:11

如果想要保持它的工作方式,可能还有另一种可能的解决方案。如果您使用按钮进行编辑,并将按钮的用户CommandName设置为“编辑”,并将CommandArgument设置为正在编辑的实体的id,那么它可能会起作用。我给你下面的代码。

代码隐藏:

代码语言:javascript
复制
protected void Grid_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Edit")
    {
        int intEditId = Convert.ToInt32(e.CommandArgument);
        Response.Redirect("~/Admin/Edit_Page.aspx?EditID=" + intEditId);

    }
 }

aspx文件:

在网格中:

代码语言:javascript
复制
<asp:TemplateField>
   <ItemTemplate><asp:ImageButton CommandName="Edit"
   CommandArgument='<%# Eval("EditID") %>' runat="server" ID="lnkEdit" ImageUrl="../images/edit.gif" ToolTip="View/Edit"></asp:ImageButton></ItemTemplate></asp:TemplateField>

希望这能有所帮助。Anindya

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/760567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档