从updatePanel中的linkbutton删除行后,Gridview不会更新

时间:2011-12-06 09:13:31

标签: c# asp.net

我在gridview中有一个链接按钮,单击该按钮会更新数据库,并应将其从网格视图中删除。这也在更新面板中。 单击链接按钮时,DB将更新,但gridview永远不会刷新。 gridview和linkbuttons都是动态生成的。

链接按钮创建如下: 'b'包含行中数据的唯一ID。

if (e.Row.RowType == DataControlRowType.DataRow)
{     
        LinkButton lbRemove = new LinkButton();
        lbRemove.ID = "removeLink" + b;              
        lbRemove.Command += new CommandEventHandler(lbRemove_Click);
        lbRemove.Attributes.Add("onclick","return confirm('Are you sure?');");
        .......
        e.Row.Cells[6].Controls.Add((Control)lbRemove);

lbRemove_Click包含更新数据库的方法并调用griview来绑定amd更新面板:

protected void lbRemove_Click(object sender, CommandEventArgs e)
{                         
      removeFromUser(Convert.ToInt32(e.CommandArgument.ToString()));             
      loadGridviews(Convert.ToInt32(ViewState["currUserID"]));
      upnlUserDevices.Update();

我尝试使用与gridview中完全相同的属性在gridview外部创建链接按钮。单击时,它会调用相同的方法并刷新网格视图,而不是在gridview本身中单击时。

如果你可以帮忙的话就会卡在这一点上? 谢谢!

3 个答案:

答案 0 :(得分:1)

看看你的代码似乎没问题。我只能想到两个建议:

  1. 确保您在方法loadGridViews()

    的末尾对DataView执行DataBind

    YourGridView.DataBind();

  2. 确保在执行绑定后更新正确的UpdatePanel:

    upnlUserDevices.Update(); // upnlUserDevices包装GridView的UpdatePanel?

  3. 希望这有帮助。

答案 1 :(得分:0)

将此gridview放入更新面板

答案 2 :(得分:0)

所以我发现了如何使这项工作。

我需要设置linkbutton .CausesValidation = false

没有这方面的专家,但确实解决了我的问题!