Flo*_*ndt 1 c# asp.net updatepanel background
我有我想在我的网站上使用的UpdatePanel.基本上,这个想法是用户点击链接并在服务器上启动将更改数据库的服务.
所以我想写的是一个方法,如果更新数据库将返回true或false.该方法应按时间间隔运行.如果数据库已更新,它将返回true,并应触发UpdatePanel更新.
我知道你可以通过控件添加触发器.但是也可以通过代码这样做吗?这个想法是,如果用户在开始操作后停留在页面上,他将在方法返回true时看到结果.如果用户离开页面,他当然什么也看不见.
如果这不是使用它的权利,请说出来.
任何评论将不胜感激!亲切的问候,Floris
我建议你使用asp:Timer
您可以将此计时器放在更新面板的内部或外部.如果你把它放在更新面板中,你不必自己处理触发器.在upatepanel里面的每个帖子都会变成异步.但如果你把它放在一边,你必须分配触发器.
这是您的aspx的示例代码:
<asp:UpdatePanel runat="server" ID="UPanel1">
<ContentTemplate>
<asp:Label ID="MessageLabel" runat="server" ForeColor="Red" Font-Size="X-Large" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Clicked" Interval="1000" />
Run Code Online (Sandbox Code Playgroud)
虽然将它放在更新面板中更容易:
<asp:UpdatePanel runat="server" ID="UPanel1">
<ContentTemplate>
<asp:Label ID="MessageLabel" runat="server" ForeColor="Red" Font-Size="X-Large" />
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Clicked" Interval="1000" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
现在在c#方面,你必须像这样编写事件处理程序方法:
private static int counter = 0;
protected void Timer1_Clicked(object sender, EventArgs e)
{
//DO YOUR WORK WITH DATABASE HERE INSTEAD OF THIS CODE
if (++counter < 5)
return;
MessageLabel.Text = "Tadaaaaaah";
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,5秒钟后,屏幕上会出现一个tadaaaah.您应该在此事件处理程序中更新您的面板.即设置Label的文本.我希望我能帮到你.
| 归档时间: |
|
| 查看次数: |
9739 次 |
| 最近记录: |