小弟我写了个程序,在DataGrid中显示并删除记录.这个程序如果放在单页面中能正常运行.点击删除一条记录后DataGrid中就回把它除去.而我放在上下框架中,上面做个导航按纽,下面显示DataGrid.这时点击删除一条记录后DataGrid中这条记录就会消失,但是点击那个导航按纽这条刚被删除的记录又会出来.而我查数据库中这条记录确实被删除了.只有点击IE中的刷新图表后,这条记录才会从DataGrid中消失.我快被搞疯了,各位大虾帮帮忙啊~~~~~是不是框架中的刷新和单独页面中的不相同,在框架中应该怎么做啊?还有我在其他的页面添加记录后,再点导航按纽进入到这个DataGrid页面中,却看不到新增的记录.也要再点一下IE的刷新才能看见.为什么啊?我已经在page_load中加载了对DataGrid进行数据绑定的语句

解决方案 »

  1.   

    这个简单,不要发疯,你需要在执行删除的那个事件后面把你的grid绑定函数重新调用一下,也就是说,不论你对datagrid执行了什么操作,都应该把它重新绑定。比如你的绑定函数是
    void BindData()//绑定函数
    {
    …………
    DataGrid1.DataSource=ds.Tables[0];
    DataGrid1.DataBind();
    }
    ///////////////////下面是删除事件
    private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {……………………BindData();//注意这里重新绑定
    }
      

  2.   

    我已经在page_load中加载对DataGrid进行数据绑定的语句 没用啊,你在提交删除的时候 是先去page_load的,然后才删除。在page_load中加载对DataGrid进行数据绑定总是慢一拍的。
    解决方法么楼上已经说了
      

  3.   

    reply1楼,2楼:
        删除事件中我已经对DataGrid进行数据绑定了.我现在的问题是删除之后,那条记录会从DataGrid中消失,但是再点导航按纽的话被删除的那条记录又会显示出来.而数据库中那条记录确实被删除了.如果这时再点一下IE中的刷新时那条被删除的记录才会从DataGrid中消失
      

  4.   


    分析:1.库中数据删除完成,而页面不显示更新,只能说明你的datagrid页面在执行完删除操作后并没有重新绑定
          2.浏览器缓存作怪,设置浏览器internet属性:设置:“每次访问此页时检查”,试试解决:实在不行请在删除事件的末尾添加如下脚本语句:
    Response.Write("<script>locatin.reload()</script>");
    将整个页面重新载入,效果等同于按了浏览器的刷新按钮,一般不建议不这样做
      

  5.   

    忘了,这个脚本有问题,很可能导致重复执行操作,
    Response.Write("<script>locatin.replace('包含datagrid的页面.aspx')</script>");
    这样写吧