编程论坛
注册
登录
编程论坛
→
ASP.NET技术论坛
用了AJAX之后,timer定时10秒,然后页面就每十秒都执行一次page的事件
ylof1986
发布于 2010-07-06 09:01, 2760 次点击
怎么搞的那,有些代码我想就执行一次的啊,这下怎么办那,不管是page的init 还是page的load都会每十秒执行一次的啊
9 回复
#2
冰镇柠檬汁儿
2010-07-06 09:20
也就是说你要每10秒钟刷新一次页面喽?
#3
ylof1986
2010-07-06 09:22
回复 2楼 冰镇柠檬汁儿
刷新UpdatePanel里面的数据啊,但是又想有一部分初始化的代码只执行一遍就好了,怎么办哦
#4
冰镇柠檬汁儿
2010-07-06 09:26
“有一部分初始化的代码只执行一遍”,难道你想初始化的代码都应该执行N遍?page_load方法里别忘了加ispostback的判断,这样就执行了一遍。
“刷新UpdatePanel里面的数据”,这个我不是很清楚,因为我用ajax向来自己手写代码,用NET的控件我觉得影响执行效率。
#5
cxwl3sxl
2010-07-06 10:55
UpdatePanel post的是整个page,服务器端得page生命周期的所有事件是都会执行的,没得办法避免。除非是你自己在你的code里面判断是不是因为updatepanel而引起的回发
#6
ylof1986
2010-07-06 16:37
回复 5楼 cxwl3sxl
那怎么判断哪
#7
bygg
2010-07-06 17:58
aspx中:
程序代码:
<asp:UpdatePanel ID=
"
UpdatePanel1
"
runat=
"
server
"
>
<ContentTemplate>
//
这里是要刷新的数据显示的地方。
<asp:Timer ID=
"
Timer1
"
runat=
"
server
"
Enabled=
"
True
"
Interval=
"
10000
"
ontick=
"
Timer1_Tick
"
>
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
aspx.cs中
protected
void
Timer1_Tick(
object
sender, EventArgs e)
{
QueryData();
//
自己写的一个显示部分数据的方法。
}
一个页面中,可以有多个UpdatePanel 进行控制,所有我们可以单独或者多个控制它们中的数据刷新。
当然,你想刷新哪个UpdatePanel,对应的触发服务端的事件便得放到它中间,就像上面的aspx中的代码一样,Timer是触发服务器端的控件,所以必需得放到<asp:UpdatePanel>...</asp:UpdatePanel>中,否则,即使刷新了,也是整个页面,而不是对应的UpdatePanel。
希望对你有用。
[
本帖最后由 bygg 于 2010-7-6 18:00 编辑
]
#8
冰镇柠檬汁儿
2010-07-07 09:29
对我很有帮助,我从来没用过ajax控件
#9
cxwl3sxl
2010-07-10 11:45
如果是UpdatePanel引起的回发,在this.Request.Form里面会有一个key叫ScriptManager的字段。
#10
misswang
2010-07-11 10:38
先顶下...学习中....
1