日期:2014-05-18  浏览次数:20407 次

保存数据后,调用 GridList 的 DataBind 方法,新添加的数据有时显示不出来
我用 VS.2008 开发 ASP.NET 程序,使用 Access 数据库

我的 GridList 的数据源是一个 ObjectDataSource。ObjectDataSource的缓存功能已经禁用(EnableCaching="False")。且在页面的 Load 的事件中添加了this.Response.Expires = 0;

我添加一条记录后调用 GridList 的 DataBind 方法希望新添加的数据马上显示在列表中。但令人气愤的是有时候就是不显示出来,有时又能显示。经常的情况是添加A不显示,添加B后,A显示出来。我在 ObjectDataSource 的事件中监控存数取数都没有问题。

我想一定是哪里有个缓冲的功能没有禁掉。大家有没有遇到这个问题?

有一个办法可以解决就是让当前的线程等待 1 秒钟,不过这个解决方法太龌龊了。

另,以前是用 GridList 与 AccessDataSource 绑定,出现这种错误的概率更高,改为 ObjectDataSource 概率低了。

------解决方案--------------------
你把哪个禁用了?然后才来调用?没有太明白
------解决方案--------------------
添加B后,A显示出来------你是不是指:先添加了A然后DataBind(),但是A没有显示出来。再添加B,再DataBind(),这时页面刷新后A出来了,B却没有出来??
楼主把你的代码简化下贴出来让大家看下。
------解决方案--------------------
up
JF
------解决方案--------------------
经常的情况是添加A不显示,添加B后,A显示出来。
--------
看样子是绑定的地方错了
应该是在添加完成之后重新绑定的
------解决方案--------------------
DataBind()之后,页面不刷新,数据就显示不了.

确认你在添加数据后,进行DataBind(),并且页面会立即刷新.

看下页面刷新事件执行没有.
------解决方案--------------------
添加之后得重新绑定一下,我就知道这些。