我做 UpdatePanel 控件的例子,但是整个页面还是被刷新了,我的button1本意是局部刷新,但也全页刷新了,帮忙看看前端代码<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        &nbsp;<asp:Label ID="Label2" runat="server" Text="外部标记"></asp:Label><br />
        <br />
        &nbsp;</div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="局部刷新" />
                <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="全局刷新" /><br />
                <asp:Label ID="Label1" runat="server"></asp:Label>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" />
                <asp:PostBackTrigger ControlID="Button2" />
            </Triggers>
        </asp:UpdatePanel>
        &nbsp;
    </form>
</body>
</html>
//后台代码using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Random ran = new Random();
        int j = ran.Next(0, 255);
        int k = ran.Next(0, 255);
        int m = ran.Next(0, 255);
        Label2.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(j)), ((System.Byte)(k)), ((System.Byte)(m)));    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "局部更新:" + DateTime.Now.ToString();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Label1.Text = "全局更新:" + DateTime.Now.ToString();
    }
}
 工程地址http://210.10.2.30/upload/udp.rar

解决方案 »

  1.   

    UpdatePanel 少了这句: UpdateMode="Conditional"
      

  2.   

    默认是always----------总是刷新页面···············
      

  3.   


    你测试过了吗?我经过测试,楼主代码没有错。<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace="System.Web.UI" TagPrefix="asp" %>
    但是把这句去掉了,不去掉应该也没事。
      

  4.   

    默认是always----------总是刷新页面···············加上也不行
    你测试过了吗? 我经过测试,楼主代码没有错。 <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
        Namespace="System.Web.UI" TagPrefix="asp" %> 
    但是把这句去掉了,不去掉应该也没事。4楼,代码没问题吗,为什么我这里都会刷新,你那里局部刷新会只局部刷新吗,难道我的Ajax有问题?
      

  5.   

    完全没有问题啊 汗 唯一的问题就是你想全局刷新 就把 button2 放到 UpdatePanel 外面啊 别放在里面就能刷了啊
      

  6.   

    我测试你的代码是正确的,你先拷贝我的代码去看看,自己新建一个test页面
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            &nbsp;<asp:Label ID="Label2" runat="server" Text="外部标记"></asp:Label><br />
            <br />
            &nbsp;</div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="局部刷新" />
                <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="全局刷新" />
                <asp:FileUpload ID="FileUpload1" runat="server" text="aa" />
                <br />
                <asp:Label ID="Label1" runat="server"></asp:Label>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" />
                <asp:PostBackTrigger ControlID="Button2" />
            </Triggers>
        </asp:UpdatePanel>
        &nbsp;
        </form>
    </body>
    </html>后台
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Random ran = new Random();
            int j = ran.Next(0, 255);
            int k = ran.Next(0, 255);
            int m = ran.Next(0, 255);
            Label2.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(j)), ((System.Byte)(k)), ((System.Byte)(m)));    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = "局部更新:" + DateTime.Now.ToString();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Label1.Text = "全局更新:" + DateTime.Now.ToString();
        }}
      

  7.   

    在Page_Load里面添加//获取更新控件儿 
    UpdatePanel mapanel = UpdatePanel1; 
    //设置触发模式 
    mapanel.UpdateMode = UpdatePanelUpdateMode.Conditional; 
    //注册button为异步更新控件 
    ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(this.Button1); 试试看