您的位置:1010cc时时彩经典版 > 1010cc时时彩客户端 > 1010cc时时彩经典版:ajax局地刷新页面钦命div内容

1010cc时时彩经典版:ajax局地刷新页面钦命div内容

发布时间:2019-08-12 07:50编辑:1010cc时时彩客户端浏览(71)

    //前台脚本方法里调用Linkbutton的onclick事件,记得先导入Jquery脚本文件的引用哦

    一、UpdatePanel内部的控件引起的回发,来更新当前UpdatePanel内部的控件内容:
        1.向页面中加入ScriptManager、UpdatePanel控件和一个Label控件(Label2)。
        2.在UpdatePanel中加入一个Button、一个Label(Label1)。
        3.双击Button在事件处理程序中写入下列代码:Label1.Text = DateTime.Now.ToString();
        4.在Page_Load事件中写入下列代码:Label2.Text = DateTime.Now.ToString();
        5.运行页面,发现每次点击按钮都会产生异步局步刷新,只有Label1的内容发生更改,页面上的Label2时间没有发生更改。
       
        代码如下:
            <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="True">
                <ContentTemplate>
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                    <br />
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                </ContentTemplate>
            </asp:UpdatePanel>
           
            protected void Button1_Click(object sender, EventArgs e)
            {
                Label1.Text = DateTime.Now.ToString(); ;
            }
            protected void Page_Load(object sender, EventArgs e)
            {
                Label2.Text = DateTime.Now.ToString();
            }
           注意:此时的ScriptManager的EnablePartialRendering属性应设为true。UpdatePanel的UpdateMode属性应设为Always。ChildAsTrigger属性应设为true。

    ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果。其中的UpdatePanel就是设置页面中异步局部更新区域,它必须依赖于ScriptManager存在,因为ScriptManger控件提供了客户端脚本生成与管理UpdatePanel的功能。

    *几个重要的属性:
        ScriptManager控件的EnablePartialRendering属性:true-实现页面的异步局部更新;false-实现全页面的刷新。
        UpdatePanel控件的RenderMode属性:InLine-UpdatePanel控件被解析成HTML的<span>标记;Block-UpdatePanel控件被解析成HTML控件的<DIV>。
        UpdatePanel控件的UpdateMode属性:Always-UpdatePanel页面上任何一处发生的回发操作都会产生页局部更新;Conditional-只在特定的情况下才产页面的回发,如执行UpdatePanel控件的update()方法或在指定的触发器的操作下。
        UpdatePanel控件的ChildAsTrigger属性:指示UpdatePanel内部控件引起的回发是否产生当前UpdatePanel控件的局部更新。如果UpdateMode设为Always的话,那ChildAsTrigger局性必须设为True,否则运行出错。

    一、UpdatePanel内部的控件引起的回发,来更新当前UpdatePanel内部的控件内容:
        1.向页面中加入ScriptManager、UpdatePanel控件和一个Label控件(Label2)。
        2.在UpdatePanel中加入一个Button、一个Label(Label1)。
        3.双击Button在事件处理程序中写入下列代码:Label1.Text = DateTime.Now.ToString();
        4.在Page_Load事件中写入下列代码:Label2.Text = DateTime.Now.ToString();
        5.运行页面,发现每次点击按钮都会产生异步局步刷新,只有Label1的内容发生更改,页面上的Label2时间没有发生更改。
        
        代码如下:
            <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="True">
                <ContentTemplate>
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                    <br />
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                </ContentTemplate>
            </asp:UpdatePanel>
            
            protected void Button1_Click(object sender, EventArgs e)
            {
                Label1.Text = DateTime.Now.ToString(); ;
            }
            protected void Page_Load(object sender, EventArgs e)
            {
                Label2.Text = DateTime.Now.ToString();
            } 
           注意:此时的ScriptManager的EnablePartialRendering属性应设为true。UpdatePanel的UpdateMode属性应设为Always。ChildAsTrigger属性应设为true。

    二、UpdatePanel控件外部的控件引起的回发,来异步更新UpdatePanel内部的内容:
        虽然上面的方式能够很简单地实现异步局部更新的功能,但就性能方面考虑,我们应当只将数据确实会发生变化的控件摆放在UpdatePanel中,这就可能会出现引起回发的控件不在UpdatePanel内的情况。
        有两种方式实现这种效果:
        a.在Page_Load方法中用ScriptManager1.RegisterAsyncPostBackControl()来注册一下要实现异步更新的控件。
        b.用触发器来实现。
        
        1、ScriptManager1.RegisterAsyncPostBackControl()注册的控件可以实现对所有的UpdatePanel控件的异步更新。
            如:ScriptManager1.RegisterAsyncPostBackControl(this.Button2);实现对Button2的注册,那此时Button2的回发就变成一个异步回发(页面不会刷新),它会导致页面上所有的UpdatePanel的内容的更新。
            注意:此时的ScriptManager的EnablePartialRendering属性应设为true。UpdatePanel的UpdateMode属性应设为Always。
        2、ScriptManager1.RegisterAsyncPostBackControl()注册的控件可以实现针对特定UpdatePanel控件的异步更新。
           a.把页面上所有的UpdatePanel控件的UpdateMode设为Conditional。
           b.ScriptManager1.RegisterAsyncPostBackControl(this.Button2);实现对Button2的注册。
           c.在Button2控件的Click事件中后面加入后面的代码:UpdatePanel1.Update(); 
           这样Button2按钮只对UpdatePanel1控件实现的异步的局部刷新。
           注意:这里的UpdatePanel的属性要设为Conditional,如果还是Always的话,会出现所有的UpdatePanel都刷新的效果。
        3、触发器
            如果页面上有多个UpdatePanel控件,如果要实现外部的控件的回发引发指定UpdatePanel的更新的话,那应当为要实现刷新的UpdatePanel控件建立一个触发器。
           a.选中要进行局部更新的UpdatePanel控件。 
           b.在其属性页中点击Triggers集合属性右边的小按钮。
           c.在弹出的对话框中,的成员列表中添加一个AsyncPostBackTriggers成员。
           d.指定AsyncPostBackTriggers成员的ControlID和EventName,即引发异步回送的控件的ID和该控件的事件。
           完成以上步骤后,切换到HTML页面就会出现下列代码:
                <asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" />
                    </Triggers>
                </asp:UpdatePanel>
                <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="ButtonOut" />
            这里需要大家注意的是:
               把所有的UpdatePanel控件的UpdateMode设为"Conditional",这样才能够针对建有相关触发器的UpdatePanel更新。
               一个UpdatePanel上可以建有多个触发器,实现在不同的情况下对该UpdatePanel控件内容的更新。
               
    三、两个UpdatePanel控件,其中一个UpdatePanel内的控件引发两个UpdatePanel控件的同时刷新。
        a.在页面上放入两个UpdatePanel和一个ScriptManager控件。
        b.在UpdatePanel1中加入一个标签Label1、一个按钮Button1 ,在UpdatePanel2中加入一个标签Label2。
        c.将UpdatePanel1和UpdatePanel2两个控件的的UpdateMode属性设为"Always"
        c.在Button1的Click事件中加入下面的代码:
            protected void Button1_Click(object sender, EventArgs e)
            {
                Label1.Text = DateTime.Now.ToString();
                Label2.Text = DateTime.Now.ToString();
            }
        
    四、两个UpdatePanel控件,其中一个UpdatePanel内的控件引发当前的UpdatePanel控件的刷新,而另一个不刷新。
        a.步骤和上面的(三)一样
        b.要把UpdatePanel1和UpdatePanel2两个控件的UpdateMode属性设为Conditional    
                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                        <br />
                        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="更新两个UpdatePanel" />
                    </ContentTemplate>
                </asp:UpdatePanel>
    1010cc时时彩经典版,            <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
                    </ContentTemplate>
                </asp:UpdatePanel>
    五、两个UpdatePanel控件,其中一个UpdatePanel内的控件引发另一个UpdatePanel控件的刷新,而本身不刷新。
        a.步骤和上面的(四)一样
        b.把UpdatePanel1和UpdatePanel2的ChildrenAsTriggers属性设为false
        c.在UpdatePanel2控件中加入一个触发器,触发源设到UpdatePanel1控件内的Button1的Click事件上。
                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
                    <ContentTemplate>
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                        <br />
                        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="更新两个UpdatePanel" />
                    </ContentTemplate>
                </asp:UpdatePanel>
                <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
                    </Triggers>
                </asp:UpdatePanel>*

    二、UpdatePanel控件外部的控件引起的回发,来异步更新UpdatePanel内部的内容:
    虽然上面的方式能够很简单地实现异步局部更新的功能,但就性能方面考虑,我们应当只将数据确实会发生变化的控件摆放在UpdatePanel中,这就可能会出现引起回发的控件不在UpdatePanel内的情况。
    有两种方式实现这种效果:
    a.在Page_Load方法中用ScriptManager1.RegisterAsyncPostBackControl()来注册一下要实现异步更新的控件。
    b.用触发器来实现。

            </div>

    代码如下:

     

    三、两个UpdatePanel控件,其中一个UpdatePanel内的控件引发两个UpdatePanel控件的同时刷新。
    a.在页面上放入两个UpdatePanel和一个ScriptManager控件。
    b.在UpdatePanel1中加入一个标签Label1、一个按钮Button1 ,在UpdatePanel2中加入一个标签Label2。
    c.将UpdatePanel1和UpdatePanel2两个控件的的UpdateMode属性设为"Always"
    c.在Button1的Click事件中加入下面的代码:
    protected void Button1_Click(object sender, EventArgs e)
    {
    Label1.Text = DateTime.Now.ToString();
    Label2.Text = DateTime.Now.ToString();
    }

    <head id="Head1" runat="server">

    //注册异步控件,lnkbtnRefreshLinkman十个Linkbutton,用于调用后台的数据更新方法;
    this.smScriptManager.RegisterAsyncPostBackControl(lnkbtnRefreshLinkman);

    本文来自

    三、两个嵌套的UpdatePanel控件,外部的UpdatePanel内的控件回发只引发内部控件的更新
    在页面上放一个ScriptManager和UpdatePanel控件(UpdatePanel1),在UpdatePanel1中放入一个标签控件 、一个按钮和另一个UpdatePanel控件(UpdatePanel2),在UpdatePanel2控件中放一 个标签控件lblIn。
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
    <ContentTemplate>
    <asp:Label ID="lblOut" runat="server" Width="158px"></asp:Label>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click2" Text="Button" /><br />
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
    <asp:Label ID="lblIn" runat="server" Width="148px"></asp:Label> 
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
    </Triggers>
    </asp:UpdatePanel>
    </ContentTemplate>
    </asp:UpdatePanel>

         在ajax.net中,UpdatePanel的使用非常普遍,那就拿UpdatePanel来说明ajax.net如何使用。首先,需要下载ajax.net的msi包并安装,可以到Microsoft的官方网站上下载,地址:ASPAJAXExtSetup.msi:http://download.microsoft.com/download/5/4/6/5462bcbd-e738-45fa-84ca-fa02b0c4e1c2/ASPAJAXExtSetup.msi
    ASPAJAXSourceCode.msi:http://download.microsoft.com/download/6/d/6/6d6c7c47-b9ff-4934-bb03-8a45b8418d35/ASPAJAXSourceCode.msi
    AjaxControlToolkit:http://ajax.asp.net/downloads/default.aspx?tabid=47
    or http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=1425
    下载完成并安装msi包之后,就可以开始第一个UpdatePanel的程序了,开始第一个UpdatePanel程序之前,还需要注意Ajax.net开发ajax程序,首先需要配置好配置文件,配置文件的详细内容可以参考ASP.NET AJAX-Enabled Web Site模板生成的web.config配置文件(该模板会在安装完msi包之后自动添加到VS2005中)配置文件处理完毕之后就可以开始第一个UpdatePanel程序了。

    如果让这个div自动刷新的话,可以用setInterval('startrefresh()',5000),这个函数的作用是每隔5秒自动执行一次startrefresh方法,还有一种方法是setTimeout('startrefresh()',5000),但是这个方法只会执行一次。

                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Label ID="lblOut" runat="server" Width="158px"></asp:Label>
                        <br />
                        <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                                <asp:Label ID="lblIn" runat="server" Width="148px"></asp:Label>
                        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click2" Text="Button" />
                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
                    </Triggers>
                </asp:UpdatePanel>
        在按钮的Click事件中和(一)中的一样。
        注意:
           把两个UpdatePanel控件的UpdateMode属性设为Conditional,要把内部控件ChildrenAsTrigger设为 True。但这样内部UpdatePanel内的控件只引发自身的刷新,不会引发外部的UpdatePanel控件的刷新,不会刷新外部的 UpdatePanel控件,因此我们还需要为外部UpdatePanel控件加入一个触发器,触发源指定为Button1控件的Click事件上。
           
    三、两个嵌套的UpdatePanel控件,外部的UpdatePanel内的控件回发只引发内部控件的更新
        在页面上放一个ScriptManager和UpdatePanel控件(UpdatePanel1),在UpdatePanel1中放入一个标签控件 (lblOut)、一个按钮(Button1)和另一个UpdatePanel控件(UpdatePanel2),在UpdatePanel2控件中放一 个标签控件lblIn。   

    protected void Button1_Click(object sender, EventArgs e)
    {
    Label1.Text = DateTime.Now.ToString(); ;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
    Label2.Text = DateTime.Now.ToString();
    }
    注意:此时的ScriptManager的EnablePartialRendering属性应设为true。UpdatePanel的UpdateMode属性应设为Always。ChildAsTrigger属性应设为true。

        </form>

    //注册分页控件 this.smScriptManager.RegisterAsyncPostBackControl(this.Pager);

                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Label ID="lblOut" runat="server"></asp:Label>
                        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click2" Text="Button" />
                        <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                                <asp:Label ID="lblIn" runat="server"></asp:Label>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </ContentTemplate>
                </asp:UpdatePanel>
        在Button1控件中的Click事件中加入下面的代码:
        protected void Button1_Click2(object sender, EventArgs e)
        {
            lblIn.Text = DateTime.Now.ToString();
            lblOut.Text = DateTime.Now.ToString();
        }
        要实现外部UpdatePanel内控件的回发引起内部和外部两个UpdatePanel控件的同时刷新的话,需要把两个UpdatePanel控件的 UpdateMode都设为Conditional,这样外部UpdatePanel内的控件回发会自动引起内部UpdatePanel控件的刷新。
        注意:
            外 部UpdatePanel控件的ChildrenAsTrigger属性要设为True,两个UpdatePanel控件的UpdateMode要都设为 Conditional,如果UpdateMode设为Always的话也会出现两个UpdatePanel同时刷新的效果,但样这会导致页面上其它的 UpdatePanel控件也发生刷新。
                  
    二、两个嵌套的UpdatePanel控件,内部的UpdatePanel内的控件回发引发二者同时更新
        在页面上放一个ScriptManager和UpdatePanel控件(UpdatePanel1),在UpdatePanel1中放入一个标签控件 (lblOut)和另一个UpdatePanel控件(UpdatePanel2),在UpdatePanel2控件中放一个标签控件lblIn和一个按 钮(Button1)。   

    1、ScriptManager1.RegisterAsyncPostBackControl()注册的控件可以实现对所有的UpdatePanel控件的异步更新。
    如:ScriptManager1.RegisterAsyncPostBackControl(this.Button2);实现对Button2的注 册,那此时Button2的回发就变成一个异步回发,它会导致页面上所有的UpdatePanel的内容的更新。
    注意:此时的ScriptManager的EnablePartialRendering属性应设为true。UpdatePanel的UpdateMode属性应设为Always。
    2、ScriptManager1.RegisterAsyncPostBackControl()注册的控件可以实现针对特定UpdatePanel控件的异步更新。
    a.把页面上所有的UpdatePanel控件的UpdateMode设为Conditional。
    b.ScriptManager1.RegisterAsyncPostBackControl(this.Button2);实现对Button2的注册。
    c.在Button2控件的Click事件中后面加入后面的代码:UpdatePanel1.Update();
    这样Button2按钮只对UpdatePanel1控件实现的异步的局部刷新。
    注意:这里的UpdatePanel的属性要设为Conditional,如果还是Always的话,会出现所有的UpdatePanel都刷新的效果。
    3、触发器
    如果页面上有多个UpdatePanel控件,如果要实现外部的控件的回发引发指定UpdatePanel的更新的话,那应当为要实现刷新的UpdatePanel控件建立一个触发器。
    a.选中要进行局部更新的UpdatePanel控件。
    b.在其属性页中点击Triggers集合属性右边的小按钮。
    c.在弹出的对话框中,的成员列表中添加一个AsyncPostBackTriggers成员。
    d.指定AsyncPostBackTriggers成员的ControlID和EventName,即引发异步回送的控件的ID和该控件的事件。
    完成以上步骤后,切换到HTML页面就会出现下列代码:
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline" UpdateMode="Conditional">
    <ContentTemplate>
    <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" />
    </Triggers>
    </asp:UpdatePanel>
    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="ButtonOut" />
    这里需要大家注意的是:
    把所有的UpdatePanel控件的UpdateMode设为"Conditional",这样才能够针对建有相关触发器的UpdatePanel更新。
    一个UpdatePanel上可以建有多个触发器,实现在不同的情况下对该UpdatePanel控件内容的更新。

    概述

    本文由1010cc时时彩经典版发布于1010cc时时彩客户端,转载请注明出处:1010cc时时彩经典版:ajax局地刷新页面钦命div内容

    关键词: