各位大神:
        小弟最近用gridview控件做一个东西,涉及到数据的修改、增加。非常奇怪:修改完数据后gridview没有更新(经查询数据库内容此时已经更新),添加数据却可以在gridview看到更新,修改和添加后都是调用的click事件重新绑定gridview
        一、 在itemtemplate里面添加按钮:修改、删除
<asp:TemplateField HeaderText="编辑">
                       <ItemTemplate>
                          <asp:Button ID="Button1" runat="server" Text="修改" OnClientClick='<%# "update("+Eval("id")+")" %>'/>
                           <asp:HiddenField id="hidID" runat="server" Value='<%# Eval("id") %>'></asp:HiddenField>
                       </ItemTemplate>
        二、在gridview控件外增加了一个:添加记录按钮
<input id="btnAdd" type="button" onclick="Insert();" runat="server" value="添加数据" />修改调用js: <script type="text/jscript">        //修改:
        function update(id) {
            window.showModalDialog("AddList.aspx?id=" + id +"&ran=" + Math.random(), "", "dialogWidth:700px; dialogHeight:320px; dialogLeft:300px; dialogTop:100px; status:no; directories:yes;scrollbars:no;Resizable=no;");
            var obj = document.getElementById("btnBind");
            obj.click();
        }
添加调用js:
//添加:
        function Insert() {
            window.showModalDialog("Add.aspx", "dialogWidth:600px; dialogHeight:200px; dialogLeft:300px; dialogTop:100px; status:no; directories:yes;scrollbars:no;Resizable=no;");
            var obj = document.getElementById("btnBind");
            obj.click();
        }添加和修改完成后都调用了button的click事件重新执行gridview的绑定:
    protected void btnBind_Click(object sender, EventArgs e)
    {        this.bind();
    
    }bind()方法:public void bind()
    {        DBClass oraDb = null;        try
        {
            //string connStr = System.Configuration.ConfigurationManager.AppSettings["jning_connStr"];//连接字符串
            oraDb = new DBClass(conn);            string sqlStr = "";
            sqlStr = "select * from  lnproduct_vs order by id";
            DataSet ds = oraDb.GetDataSet(sqlStr);            this.GridView1.DataSource = ds;            this.GridView1.DataKeyNames = new string[] { "id" };
            this.GridView1.DataBind();
            GridView1.Columns[0].Visible = false;
            oraDb.clear();//关闭连接;
        }
        catch (Exception ee)
        {
            if (oraDb != null && oraDb.Connection.State == System.Data.ConnectionState.Open)
            {
                oraDb.clear();//关闭连接;
            }-----------现在的疑问是:添加完后gridvew正常显示,但修改完后gridveiw仍显示修改之前的数据,请大神帮忙看看,感觉不尽!
如有遇到相似问题的大神请QQ我:251207502,重谢。

解决方案 »

  1.   

     this.GridView1.DataSource = null;
     this.GridView1.DataSource = ds;
    最好先清空下再绑定。
      

  2.   

    打断点单步调试下啊,应该是没触发Bind事件
      

  3.   

    各位大神,我断点调试了,dataset里面可以看到更新的数据,数据库内容也已更新(添加完数据后调用绑定方法,就可以在页面看到添加的内容,但修改后调用同样的绑定方法,就是看不到更新的内容),但是页面就是没有更新,请继续指点。
      

  4.   

    if(!ispostback)
      

  5.   

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
       
                    LoadData();
                }
            }
    这样试试