http://time-is-life.cnblogs.com/articles/329656.html
解决方案 »
- 【疑难杂症】ajax 同步,js 改变html及时显示问题
- 为什么跳过弹窗部分直接走方法?
- 数组问题 大家帮忙解决啊!
- 网页运行时出现错误:CS0117: “System.Web.UI.WebControls.FileUpload”并不包含“filename”的定义(头晕
- 对文本框进行模糊查询?
- CSDN不给分,只有10分了。。问4个问题,希望遇到好心人
- 如何获取浏览器的版本语言?
- 请教一个关于Button的问题!!!!!!!!!!
- 为什么我找不到数据库下的节点
- 上传excel里面的数据到数据库
- Asp.net里面用C#,有没有类似confirm这样的函数控制流程。
- ASP代码可以和asp.net代码并存吗?
if(!IsPostBack)
{
.....
}
---------------------------------------
可是我在按钮点击事件中又添加了重新绑定的代码
这样处理对于DataGrid是好用的,但是Repeater就是不行
我想让按钮点击以后就显示出最新的数据,而不是延迟一次,我想这是谁也不想看到的
repeater.DataBind();
this.rptComments.DataSource = dsComments;
上都加了端点,然后进行调试,结果竟然正常了,也就是说能够马上显示出来了,难道是因为在插入数据后马上读取就读取不到最新的数据,怎么会这样那?我用的是Access数据库,插入一条数据就这样慢?那么该怎么样进行处理那?
pageload()
『』
{
if(!IsPostBack)
{
datagridbind();
}
}buttonclick()
{
insert();
datagridbind();
}
这样就可以了,和速度慢不慢没关系
『
执行sql语句查询数据库得到数据集于repeater绑定
』
你具体再看看
http://time-is-life.cnblogs.com/articles/329656.html
是不是微软的bug?
要考虑一下.net的线程先后问题。不过一般把绑定放在按钮处理的最后一步而不放在页面开头,基本上不会出现这样的问题
我新建了一个应用程序,效果还是一样
>这个问题很普遍哦。
>要考虑一下.net的线程先后问题。
>
>不过一般把绑定放在按钮处理的最后一步而不放在页面开头,基本上不会出现这样的问题我的按钮处理事件是这样的: string username = this.txtUserName.Text;
string ip = this.Page.Request.UserHostAddress;
string posttime = DateTime.Now.ToString();
string content = this.txtContent.Text; //插入数据库
ESolution_ProxyServerBBS_DataAccess esolution_proxyserverbbs_dataaccess = new ESolution_ProxyServerBBS_DataAccess();
esolution_proxyserverbbs_dataaccess.AppendProxyServerBBS( username , content , posttime , ip ); if( Page.IsPostBack )
{
//因为btnSubmit函数的执行在Page_Load之后,所以需要重新绑定Repearter才能显示最新的数据
DataSet dsComments = new DataSet();
dsComments = esolution_proxyserverbbs_dataaccess.GetProxyServerBbsByNum( 3 );
this.rptComments.DataSource = dsComments;
this.rptComments.DataBind();
}这样也是把绑定语句放在按钮处理事件的最后了吧,可是怎么还是不行那?
而且在那个链接中我也说了,我让线程停滞1秒,还是不行
到底怎么回事哪?
page_load
{
if(!Page.IsPostBack ) //Page.IsPostBack 应是
{
databind();
}
}
databind()
{
DataSet dsComments = new DataSet();
dsComments = esolution_proxyserverbbs_dataaccess.GetProxyServerBbsByNum( 3 );
this.rptComments.DataSource = dsComments;
this.rptComments.DataBind();}buttonclick()
{
insert();
databind();
}
你的
ESolution_ProxyServerBBS_DataAccess esolution_proxyserverbbs_dataaccess = new ESolution_ProxyServerBBS_DataAccess();
esolution_proxyserverbbs_dataaccess.AppendProxyServerBBS( username , content , posttime , ip );
是什么??webservice??
>你的
>ESolution_ProxyServerBBS_DataAccess esolution_proxyserverbbs_dataaccess = new >ESolution_ProxyServerBBS_DataAccess();
>esolution_proxyserverbbs_dataaccess.AppendProxyServerBBS( username , content , >posttime , ip );
>是什么??
>
>webservice??
ESolution_ProxyServerBBS_DataAccess是数据层的一个类,也就是调用一个dll中的方法
不应该是缓存的问题,因为总是延迟一次,而不是多次
另外在调试状态下就不会延迟
2. 不应该是缓存的问题,因为总是延迟一次,而不是多次,另外在调试状态下就不会延
首先谢谢你的指教
>你先跳过这个方法试试,直接在asp.net里更新数据库,看有没有延时?我试验了更新数据库,和插入数据库一样,也是延迟一次
但是页面上没有更新
2. 我在Page_Load中加了: this.Page.Response.Buffer = false;
this.Page.Response.Cache.SetNoStore();
用来清除缓存
程序运行结果还是一样,看来不是缓存的问题
让人吃惊的新进展在两处
this.rptComments.DataSource = dsComments;
上都加了端点,然后进行调试,结果竟然正常了,也就是说能够马上显示出来了,难道是因为在插入数据后马上读取就读取不到最新的数据,怎么会这样那?我用的是Access数据库,插入一条数据就这样慢?那么该怎么样进行处理那?
======
这个问题我遇到过,原因是两次绑定的时候,上一次的数据连结没有关闭。
也就是你的Insert之后没有立即关闭连结。(关闭连结的代码在DataAdapter.Fill之前)
楼主请仔细检查。
你的连接或查询Time与你保存Time冲突,即是同时
你在调试过程中有了停顿
所以才不会出现这个问题
有时改一下查询条件或许就可以了