[已解决问题] 最优性能实现GirdView在新增一条数据后进行数据重新绑定
提问时间: 2008-03-05 22:55
悬赏分:20 浏览:454 次

打个比方
页面上有一个GridView或者ListView,select * from MyTable,显示数据库里的数据,支持delete和update,不过这个不是最重要.

现在执行insert操作,往MyTable里新增一条数据,并得到了insert的新行的id,现在要做的是前边GridView数据的重新填充.

问题是这个重新填充能否不采用select * from MyTable这样的方法,而是只把刚才insert出来的那条数据给select出来,再添加到原本已经存在的GridView中?


我考虑这个问题的原因是,频繁的select那些原本已经得到的数据或许是可以避免的?请教各位

有这个功能需求我本身想到的是前边table用html进行拼接得了,但是有分页和编辑,删除的操作需要,所以仍然想把目光放在GridView或者ListView上边.
期待各路高手解答并提供建议!谢谢!!


提问者:SHUFE.41 - 初学一级
所有回答(4)
有没有试过使用SqlDataSource来提供数据?
4个月前   回答者:deerchao - 大侠五级
不好弄,最好是重新获取数据, 如果一定要实现这个效果,就用JS写进去一行吧.
4个月前   回答者:沙加 - 老鸟四级
用js append,不过觉得好麻烦。
4个月前   回答者:WOW玩家 - 菜鸟二级
果然相当麻烦,如果数据没有缓存在服务器端,那么意思就是说不能发生整页面提交,那就只能用ajax去增加一条记录,增加之后返回新增加的数据,用JS把这个数据附加到table后面(GridView到客户端就是一个普通的table)
这个过程做起来比较烦,不过并不很难
问题在于,不管是分页、编辑、删除,用了SqlDataSource的GridView里都免不了要重新Bind,所以这样做就没有意义
如果不用SqlDataSource,其实也是每次都Bind,只是可以把数据缓存到服务器上而不是每次select,但是update/delete操作还是要执行,数据量小的话,没有必要害怕这个select,但数据量大的话,你这个缓存也有问题
所以,最终结论就是:这个需求不做也罢!
-------------------------------------
一家之言,呵呵,期待高见
4个月前   回答者:丁学 - 大侠五级
评论
4个月前   SHUFE.41 :
监控测试过用sqldatasource的时候的运行方式 insert之后仍然会执行一次bind() 这个bind()就是从数据库里执行下select * from MyTable 没有where的限制........

用JS的话,能控制GridView吗?
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除