asp.net中GridView的自定义删除出问题

我在GridView中自定义了删除功能,用ScriptManager实现页面的无刷新,第一次点击“删除”后数据库已实现记录的删除,但页面没变化,第二次点击“删除”后就能看到上一次的删除结果。怎样才能点击删除就能无刷新的删除呢,我附上代码麻烦各位高手指点。

前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Temp.aspx.cs" Inherits="Temp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>无标题页</title>
</head>
<body>
  <form id="form1" runat="server">
  <asp:ScriptManager ID="ScriptManager1" runat="server">
  </asp:ScriptManager>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <ContentTemplate>
  <asp:GridView ID="GridView1" runat="server" 
  onrowcommand="GridView1_RowCommand">
  <Columns>
  <asp:TemplateField ShowHeader="False">
  <ItemTemplate>
  <asp:LinkButton ID="LinkButton1" runat="server" 
  CommandName="mydelete" CommandArgument='<%# Eval("ArticleID") %>'>删除</asp:LinkButton>
  </ItemTemplate>
  </asp:TemplateField>
  </Columns>
  </asp:GridView>
  </ContentTemplate>
  </asp:UpdatePanel>
  </form>
</body>
</html>

后台代码:
public partial class Temp : System.Web.UI.Page
{
  public void ArticleBind()
  {
  string sqlstr = "select ArticleID ,Title,Dateline ,ReadNum,CommentNum ,State from Article";
  GridView1.DataSource = SqlData.ExceDS(sqlstr);
  //获取或设置GridView控件中的主键字段
  GridView1.DataKeyNames = new string[] { "ArticleID" };
  //从数据中绑定数据到列表控件中;
  GridView1.DataBind();  
  }


  protected void Page_Load(object sender, EventArgs e)
  {
  ArticleBind();  
  }

  protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {
  if (e.CommandName.Equals("mydelete"))//执行删除
  {
  string strsql = "delete from Article where ArticleID='" + Convert.ToInt32(e.CommandArgument) + "'";
  bool delete = SqlData.ExceSql(strsql);

  if (delete)
  {
  Response.Write("<script>alert('删除成功')</script>");
  GridView1.DataBind();

  }
  else
  {
  Response.Write("<script>alert('删除失败')</script>");
  }

  } 
  }
}
  • ExporpHeillop - 2个月前

    参考相关:
    http://www.cnblogs.com/insus/articles/1944295.html

  • bercuroprop - 2个月前

    感觉这个比较烦,具体没有研究过,有时行有时不行的(没有具体探究),你ArticleBind();之后,你调用一次UpdatePanel1。update这个方法,肯定可以的

  • HYOOOOOGA - 2个月前

    Response.Write("<script>alert('删除成功')</script>");
    =>
    ScriptManager.RegisterStartupScript(UpdatePanel1,GetType(),"success","alert('删除成功');",true);

  • zawazig - 2个月前

    [Quote=引用 1 楼 lovesheng1212 的回复:]
    我在GridView中自定义了删除功能,用ScriptManager实现页面的无刷新,
    第一次点击“删除”后数据库已实现记录的删除,但页面没变化

     执行删除后 重新绑定数据


    试过了,还是不行。

  • Fastalpplen - 2个月前

    我在GridView中自定义了删除功能,用ScriptManager实现页面的无刷新,
    第一次点击“删除”后数据库已实现记录的删除,但页面没变化

     执行删除后 重新绑定数据

    C# code

    
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
      {
      if (e.CommandName.Equals("mydelete"))//执行删除
      {
      string strsql = "delete from Article where ArticleID='" + Convert.ToInt32(e.CommandArgument) + "'";
      bool delete = SqlData.ExceSql(strsql);
    
      if (delete)
      {
      Response.Write("<script>alert('删除成功')</script>");
      //GridView1.DataBind();[color=#FF0000]
    ArticleBind();[/color]
      }
      else
      {
      Response.Write("<script>alert('删除失败')</script>");
      }
    
      } 
      }