原来是这样个界面。这个是一个用户控件,数据和列都是内容页动态添加,执删除事件后,重新绑定数据,GridView1.DataBind();一下,就丢失了Gridview控件,求解求助,

解决方案 »

  1.   

    单步调试看看GridView的DataSource是什么。
      

  2.   

    第一次是怎么绑定gridview,删除后在重新绑定一次
      

  3.   

    没有代码很难说,有很多原因
    1、删除代码有问题。WHERE的条件没写,删除的时候删了全部,就会导致数据源没有
    数据源没有,控制显示自然是空
    2、链接数据库的CONN没有及时清理,导致某一时刻,数据奔溃,绑定出错
    以上是常见的两种原因。。其他暂时想不到。最好贴代码出来看看
      

  4.   


    gridView绑定的数据源中,有单元格的值为Null。
      

  5.   


    gridView绑定的数据源中,有单元格的值为Null。
    说的对,, 肯定是gridView绑定 查出来的数据为空,, 调试看看吧
      

  6.   

    删除事件后,如果刷新了页面,gridView连接数据源就会是空的,需要重新建立数据源。数据源的状态不保留。
      

  7.   

    refer:
    http://www.cnblogs.com/insus/p/3197194.html
      

  8.   

    你每次DataBind()之前,要记得都要重新配置DataSource属性啊,并不是说你在页面加载时配置了一次DataSource,后面就可以无限地DataBind()了。至于是不是数据为空的问题,其实解决的办法很简单,我们的控件不是提供一个空值模板么,就是那个<EmptyDataTemplte>
      对不起,暂时没有相关的记录哦,请换别的查询条件查询
    </EmptyDataTemplte>
    在我想象中,GridView这个这么庞大的高级控件,对于像当前页面是最后一页,然后全部删除最后一页的数据后,理论上讲应该会自动把当前页码回退一页,也就是前一页,这样才有数据显示的,当然,相信微软的工程师们不会考虑不到这种情况吧,就算它不自动回退一页,那至少也会显示为空数据,而不会出现说控件丢失的情况吧。至于楼上有位兄弟说用定时机制去绑定的,出现大红叉的情况,我觉得应该是宽度问题。
    解决的办法 是,在控件里增加空值模板
    <EmptyDataTemplte>
      这里输入你自己的提示给用户的内容文字
    </EmptyDataTemplte>然后,配置好GridView的宽度,最好能查看一下包含它的父窗口,像外面一层的DIV之类的窗口的宽度,这样以后应该不会出现什么大红叉的情况