ASP.net中的AJAX学习记录七:用javaScript来更新Updatepanel

        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>
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")
6                        //label1获取系统当前时间。
7                        Label1.Text = DateTime.Now.ToString();
8        }
9 }

本文出自 “叶子文文” 博客,转载请与作者联系!

你可能感兴趣的:(JavaScript,Ajax,asp.net,休闲,UpdatePanel)