日期:2014-05-19  浏览次数:20367 次

难理解的刷新问题!绝对很难处理!
页面中有个DataGrid1,开始时绑定到表TB1,在编辑,删除,更新,换页等按扭的事件中都调用个重新绑定DataGrid1到DB1的方法BindGrid();不这样的话好象页面内容就刷新不了。
可是我遇到这样个问题:查询操作的时候,DataGrid1绑定到TB1中查询出来的部分内容,这时如果也有N多页,当再点换页操作时,或者是编辑操作时,会激发BindGrid();而这个方法又把DataGrid1绑定到表TB1,于是....刚才查询出来的内容飞了。
如果不调用BindGrid();,页面内容却刷新不了,好矛盾啊...
我是初学者,这个问题还真是难懂,有什么方法完成上面的操作吗?

------解决方案--------------------
关于ing!
------解决方案--------------------
jf
------解决方案--------------------
DataGrid1_PageIndexChanged事件中应该是这种形式
DataGrid1.CurrentPageIndex = e.NewPageIndex
BindGrid()

你说开始时绑定是什么意思?是一进页面数据就已经绑定上了吗?那一定要把BindGrid放到not postback里,如:
Page_load:
(VB语法)
If Not Page.IsPostBack Then
BindGrid()
End if
如果不放到not postback里。点击按钮或任何触发PostBack的事件。都会执行Page_load里的内容。



------解决方案--------------------
If Not Page.IsPostBack Then
BindGrid()
End if
应该是这个缘故
------解决方案--------------------
可以在BindGrid()方法中加一个参数BindGrid(string connstring),connstring为查询的条件
这样当查询的时候绑定的数据源就成了你需要的了
因为你在BindGrid()固定了数据源,所以会出现你现在的问题了
------解决方案--------------------
如果不想每次都查询数据库,那你就把查询结果存在一个缓存中,比如你把DATATABLE或者DATASET等等 存到SESSION或者缓存真实APP[]里都可以,看你需要了.当然这里是在不改变查询条件的时候,如翻页排序之类的.如果有删除添加或者更改查询条件,是必然要重新查询了.
绑定的时候不仅仅是把数据传给DRIGVIEW其实还有GRIDVIEW的一些内部操作,所以BIND是每步必须的.
------解决方案--------------------
你帮定的时候给其传入sql语句,sql语句包括查询条件.
------解决方案--------------------
Page.IsPostBack问题
------解决方案--------------------
BindGrid() 中必须包括查询条件,看来你没有包含。绑定时不能忽视完整的状态,查询条件、页号、焦点所在的行等等都要设置。