UpdatePanel 里面放了两个Button,但是还是会全刷页面啊 ASP.NET

我先是在里面放了一个gridview,gridview中的button倒支持局部刷新,之后在下方加入如下两个按钮后,下方按钮会全局刷新。我是想自己写分页代码的<divst... 我先是在里面放了一个gridview ,gridview 中的button倒支持局部刷新,之后在下方加入如下两个按钮后,下方按钮会全局刷新。我是想自己写分页代码的
<div style="height:35px;">
<div class="float_left padding5">

</div>
<div class="float_right padding5 paging">
<div class="float_left padding_top4">
<span class="paging_disabled">
<asp:Button ID="LastPages" runat="server" Text="上一页" onclick="LastPages_Click" />
<asp:Button ID="Pages1" runat="server" Text="1" onclick="Pages1_Click" CssClass="button" />
<asp:Button ID="Pages2" runat="server" Text="2" onclick="Pages2_Click" CssClass="button" />
<asp:Button ID="Pages3" runat="server" Text="3" CssClass="button" onclick="Pages3_Click"/>
<asp:Label ID="PageNow" runat="server" Text="1"></asp:Label></span>

<span>...</span>
<asp:Button ID="PagesMax" runat="server" Text="" CssClass="button"/>
<asp:Button ID="NextPages" runat="server" Text="下一页" CssClass="button" onclick="NextPages_Click"/>

</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
展开
 我来答
N_0_1
高粉答主

2015-10-24 · 关注我不会让你失望
知道大有可为答主
回答量:8628
采纳率:47%
帮助的人:826万
展开全部
atePanel2控件中放一个标签控件lb2和一个按 钮(Button1)。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lb1" runat="server" ></asp:Label>
<br />
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lb2" runat="server" ></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" 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中放入一个标签控件 (lb1)、一个按钮(Button1)和另一个UpdatePanel控件(UpdatePanel2),在UpdatePanel2控件中放一个标签控件lb2。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
<ContentTemplate>
<asp:Label ID="lb1" runat="server" ></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /><br />
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lb2" runat="server" ></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
在按钮的Click事件中和(一)中的一样。
注意:
要把两个UpdatePanel控件的UpdateMode设为Conditional,把外部UpdatePanel控件的 ChildrenAsTrigger设为false。这样两个UpdatePanel控件都不会刷新,所以还要为内部的UpdatePanel控件建立触 发器,触发源指向外部UpdatePanel中的的Button1的Click事件上。

四、母版页中使用UpdatePanel控件
如果将ScriptManager控件添加在母版页上的话,那么各内容页面就没必要再添加ScriptManager控件了,只需添加UpdatePanel控件就可以了,因为母版页和内容页面将来生成的是一个页面的实例,而在一个页面上是不允许同时存在两个ScriptManager控件的。
如果ScriptManager控件没有添加在母版页上的话,那只能把ScriptManager控件添加在其中一个内容页面里。不要向每一个内容页面中添加ScriptManager控件。
1、内容页面中的UpdatePanel内的控件引起回发,只更新当前内容页面的内容。
此时按钮分别在各自的UpdatePanel控件内。
将两个内容页面内的两个UpdatePanel控件的UpdateMode设为Conditional,ChildrenAsTrigger设为True。
在按钮的Click事件中和(一)中的一样。
这样就出现各内容页的UpdatePanel内的按钮只对当前内容页起作用。
2、在母版页中的按钮引起回发,更新指定内容页的信息。
此时有两个按钮:ButtonOut在母版页中,ButtonIn在内容页面1中。
当点击ButtonOut时,异步更新两个内容页面的信息。当点击ButtonIn时,异步更新母版面中的UpdatePanel1中的信息。
母版页HTML代码如下:
<div>
母版页
3、<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lbl" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ButtonOut" /><br />
<table width=80%>
<tr>
<td>
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
</td>
<td bgcolor=maroon>
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
</asp:ContentPlaceHolder>
</td>
</tr>
</table>
<br />
内容页面的HTML代码如下:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Child.aspx.cs" Inherits="Child" Title="UpdatePanel Test Page" %>
<%@ MasterType VirtualPath="~/MasterPage.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="ButtonInner" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content2" runat="server" ContentPlaceHolderID="ContentPlaceHolder2">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
母版页的CS代码如下:
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager1.RegisterAsyncPostBackControl(this.Button1);
}
protected void Button1_Click(object sender, EventArgs e)
{
Label lbl1 = (Label)this.ContentPlaceHolder1.FindControl("Label1");
lbl1.Text = DateTime.Now.ToString();
Label lbl2 = (Label)this.ContentPlaceHolder2.FindControl("Label2");
lbl2.Text = DateTime.Now.ToString();
}
public string BindTitle
{
get
{
return lbl.Text;
}
set
{
lbl.Text = value;
}
}
Child孩子页面的CS代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = Master.BindTitle;
Master.BindTitle = "ContentPage1's Action";
((UpdatePanel)Master.FindControl("UpdatePanel1")).Update(); ;
}
五、用户控件中使用UpdatePanel控件
如果父页面中存在ScriptManager控件,那用户控件的页面中不应再放入ScriptManager控件了,只在用户控件中加入UpdatePanel。
其控件的回发与更新规律与使用方式与母版页一样。
最后的小丁
2012-03-04 · TA获得超过516个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:140万
展开全部
前台
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button3" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button3" runat="server" Text="显示当前时间" onclick="Button3_Click" />

后台
protected void Button3_Click(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}

你要button 放在UpdatePanel 外面 要先指定Triggers可以导致UpdatePanel 更新的触发器的集合的。
追问
我加上之后这是什么原因呢?缺少引用还是语法不对?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
446252517
2012-03-04 · 超过10用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:42万
展开全部
你是 全局UpdatePanel ?
如果是这样的话就相当于 整页刷新了
具体某个局部刷新的话,你在后台代码要 指定刷新的 UpdatePanel
追问
如何指定?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1531325423
2012-03-04
知道答主
回答量:10
采纳率:0%
帮助的人:4万
展开全部
不知到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式