当我们不使用数据源控件的时候,通常是把查询和DataBind的方法写到!IsPostBack中。
但是当使用数据源控件的时候,如ObjectDataSource绑定到GridView上的时候,当点击GridView的编辑,选择甚至取消时,都会激发Select方法,重新查询数据库,这样是不是效率很低啊?有什么好的办法呢?让ObjectDataSource智能一些,比如当数据集并没有发生任何变化的时候,或者没有显性调用重新查询的时候,不要再次去查询,以免影响效率。
但是当使用数据源控件的时候,如ObjectDataSource绑定到GridView上的时候,当点击GridView的编辑,选择甚至取消时,都会激发Select方法,重新查询数据库,这样是不是效率很低啊?有什么好的办法呢?让ObjectDataSource智能一些,比如当数据集并没有发生任何变化的时候,或者没有显性调用重新查询的时候,不要再次去查询,以免影响效率。
如果你点了编辑,这个编辑是回发的话,
用ObjectDataSource不需要你编什么代码,就重新绑定了!
而传统的需要编写代码来重新绑定!!
这两者都要回发服务器,原理是一样的!!
至于楼主所说的:
"比如当数据集并没有发生任何变化的时候,或者没有显性调用重新查询的时候,不要再次去查询,以免影响效率。"
我没觉得有这方面的问题!!
如果你触发的是回发事件,则无论是用ObjectDataSource还是不用ObjectDataSource,原理是一样的!!
如果你用js处理,不回发的事件,则无论是用ObjectDataSource还是不用ObjectDataSource,也是一样的!!
楼主可否举个例子,来说明你的情况!!
记得曾经也考虑过这个,用模版列+JS实现,只有在点击更新按钮的时候,会触发回发。点击编辑,让编辑按钮隐藏,更新和取消显示;点击取消,让更新和取消隐藏,编辑显示;点击更新执行UpdateCommand。不过个人感觉没有这种必要。这样考虑优化的话,那从某种概念上来说就不是服务端控件了,完全可以使用第三方的onclient控件,体验更好。