Updatepanel的刷新,除了使用之前在Updatepanel的Triggers中加入controlID外,还有一种上一篇用到过的方法update()函数,这篇博客我学习到另一种方法,用JavaScript中的__doPostBack()(两条下划线)来实现,我们达到的页面效果是,当点击Button1时,Updatepanel1中的label就获取系统时间。
注: __ dopostback这个前台函数的功能,主要是用于web控件的postback,它是通过__eventTraget,__eventArgument两个隐藏控件向服务端发送控制信息的。
页面布局:1.在页面中拖放scriptmanager1。
2.放入Updatepanel1,将Updatepanel1的UpdateMode=conditional。
3.在Updatepanel1中,放入一个label1。
4.在Updatepanel1的外部放入一个html的Button1.
页面的源代码如下:当点击Button1时,引发__ dopostback函数,致使页面刷新。
1<%@ Page Language=
"C#" AutoEventWireup=
"true" CodeFile=
"Default.aspx.cs"
Inherits=
"_Default" %>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns= "http://www.w3.org/1999/xhtml">
4<head runat= "server">
5 <title>无标题页</title>
6</head>
7<body>
8 <form id= "form1" runat= "server">
9 <div >
10 <asp:ScriptManager ID= "ScriptManager1" runat= "server">
11
12 </asp:ScriptManager>
13 <script language = "javascript">
ComfirmRefresh() ComfirmRefresh()
15 {
16 if(confirm( "你确认要刷新吗?"))
17 {
18 //第一个参数是你希望提交到服务器的控件的ID号,第二个参数是事件参数
19 __doPostBack( "UpdatePanel1", "Refresh");
20 }
21 }
22 </script>
23 <input id= "Button1" type= "button" value= "button" onclick= "ComfirmRefresh()" />
24 <asp:UpdatePanel ID= "UpdatePanel1" runat= "server" UpdateMode = "Conditional">
25 <ContentTemplate>
26 <asp:Label ID= "Label1" runat= "server" Text= "Label"></asp:Label>
27 </ContentTemplate>
28 </asp:UpdatePanel>
29 </div>
30 </form>
31</body>
32</html>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns= "http://www.w3.org/1999/xhtml">
4<head runat= "server">
5 <title>无标题页</title>
6</head>
7<body>
8 <form id= "form1" runat= "server">
9 <div >
10 <asp:ScriptManager ID= "ScriptManager1" runat= "server">
11
12 </asp:ScriptManager>
13 <script language = "javascript">
ComfirmRefresh() ComfirmRefresh()
15 {
16 if(confirm( "你确认要刷新吗?"))
17 {
18 //第一个参数是你希望提交到服务器的控件的ID号,第二个参数是事件参数
19 __doPostBack( "UpdatePanel1", "Refresh");
20 }
21 }
22 </script>
23 <input id= "Button1" type= "button" value= "button" onclick= "ComfirmRefresh()" />
24 <asp:UpdatePanel ID= "UpdatePanel1" runat= "server" UpdateMode = "Conditional">
25 <ContentTemplate>
26 <asp:Label ID= "Label1" runat= "server" Text= "Label"></asp:Label>
27 </ContentTemplate>
28 </asp:UpdatePanel>
29 </div>
30 </form>
31</body>
32</html>
cs代码如下:
1public partial class _Default : System.Web.UI.Page
2 {
3 protected void Page_Load(object sender, EventArgs e)
4 { //当前ScriptManager1回发的值是AsyncPostback并且导致ScriptManager1的异步回发事件的控件为UpdatePanel1时。
5 if (ScriptManager1.IsInAsyncPostBack && ScriptManager1.AsyncPostBackSourceElementID == "UpdatePanel1")
2 {
3 protected void Page_Load(object sender, EventArgs e)
4 { //当前ScriptManager1回发的值是AsyncPostback并且导致ScriptManager1的异步回发事件的控件为UpdatePanel1时。
5 if (ScriptManager1.IsInAsyncPostBack && ScriptManager1.AsyncPostBackSourceElementID == "UpdatePanel1")
6 //label1获取系统当前时间。
7 Label1.Text = DateTime.Now.ToString();
8 }
9 }
7 Label1.Text = DateTime.Now.ToString();
8 }
9 }
本文转自叶子文文博客51CTO博客,原文链接http://blog.51cto.com/leafwf/185628如需转载请自行联系原作者
叶子文文