我在带有中继器的页面上使用计时器时遇到问题。
我的页面基本上是这样的:(没有写下所有的标签和其他不重要的东西,页面很大)
<asp:Timer runat="server" Interval="5000" OnTick="UpdateTimer_Tick" ID="UpdateTimer" />
<UpdatePanel 1>
<dropdownlist/>
<Panel 1>
<TextBox/><Button/>
</Panel 1>
<Repeater 1> //Bound to a list in code behind
<Checkbox/><textbox/>
</Repeater 1>
<Button/>
<Repeater 2> //Bound to a list in code behind
<button/><button/>
</Repeater 2>
<Repeater 3> //Bound to a dataset in code behind
<textbox/><button/><button/>
</Repeater 3>
<button/><button/><button/>
</UpdatePanel 1>
<panel 2>
//Jscript stuff that doesn't change anything to my current problem.
</panel 2>
<UpdatePanel 2>
<Image/>
</UpdatePanel 2>
在我的页面中,我正在尝试添加一个 5000 毫秒滴答的计时器。OnTick 事件需要调用我的 BindRepeater2 方法,因为我只想重新加载转发器以显示更新的信息。
我尝试将计时器放置在 updatePanel 之前、内部、之后、面板 1 中、面板 2 中、中继器中。我尝试为每个中继器设置多个 updatePanel,我尝试将面板放置在任何地方……我得到的最好结果是面板 1 中的文本框不会丢失其中的信息。UpdatePanel2 中的图像总是消失(因为我在 pageLoad 上绑定过一次,如果不是回发),repeater1 中的文本框总是会自行重置。最重要的是,当我浏览下拉列表时,OnTick 事件会失去对文本框和左键的关注。
我不知道如何解决这个问题。
编辑:我发现我可以使用 ajax 来构建我的转发器。但我不知道该怎么做。任何人都可以解释我吗?