菜鸟问题,使用updatepanel与不使用的区别?(我只知道updatepanel是什么局部更新)
<asp:UpdatePanelID="UpdatePanel1"runat="server"><ContentTemplate><div><asp:ButtonID="...
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:Button ID="Button1" runat="server" Text="异步回送" onclick="Button1_Click" />  
<asp:Button ID="Button2" runat="server" Text="整页回送" onclick="Button2_Click" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="197px">
<Columns>
<asp:BoundField DataField="QuestionText" FooterText="FooterText" HeaderText="QuestionText" />
</Columns>
</asp:GridView>
<br />
<asp:Label ID="Label1" runat="server" Text="当前时间" Font-Bold="true" Font-Size="Large"></asp:Label>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
<asp:PostBackTrigger ControlID="Button2" />
</Triggers>
</asp:UpdatePanel>
这个代码与不用updatepanel,直接弄一个datagrid, 然后点击Button1事件的效果不是一样吗?都是给grid绑定一个数据源,显示数据,没什么区别啊!求高手说明
thx,学之旅行网,也就是说updatepanel主要是为了节省服务器资源,避免整个页面刷新?如果不用updatepanel虽然能达到同样的效果,但是会导致服务器复旦过大,对吗? 展开
<ContentTemplate>
<div>
<asp:Button ID="Button1" runat="server" Text="异步回送" onclick="Button1_Click" />  
<asp:Button ID="Button2" runat="server" Text="整页回送" onclick="Button2_Click" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="197px">
<Columns>
<asp:BoundField DataField="QuestionText" FooterText="FooterText" HeaderText="QuestionText" />
</Columns>
</asp:GridView>
<br />
<asp:Label ID="Label1" runat="server" Text="当前时间" Font-Bold="true" Font-Size="Large"></asp:Label>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
<asp:PostBackTrigger ControlID="Button2" />
</Triggers>
</asp:UpdatePanel>
这个代码与不用updatepanel,直接弄一个datagrid, 然后点击Button1事件的效果不是一样吗?都是给grid绑定一个数据源,显示数据,没什么区别啊!求高手说明
thx,学之旅行网,也就是说updatepanel主要是为了节省服务器资源,避免整个页面刷新?如果不用updatepanel虽然能达到同样的效果,但是会导致服务器复旦过大,对吗? 展开
2个回答
展开全部
其实是封装了ajax技术而成的一种控件,其目的是实现局部刷新。
一般触发服务器控件是都会回发从而刷新整个页面,造成服务器资源的浪费,如果数据量大的话,服务器的承受压力很大,最终会造成页面半天打不开。
采用了updatepanel后,他只刷新updatepanel内的数据,从而避免整个页面刷新,用户效果很好。
下面是使用updatepanel的一些使用方法:
需要在这控件之前加上 scriptManager 控件
UpdatePanel 控制页面的局部更新,这个更新功能依赖于scriptManger控件的EnablePartialRendering属性,如果这个属性设置为false局部更新会失去作用(scriptManger 控件的EnablePartialRendering属性的默认值为true不必刻意去设置)
主要属性:
1. ChildrenAsTriggers : 内容模板内的子控件的回发是否更新本模板(和UpdateMode的conditional有关)
2. UpdateMode : 内容模板的更新模式,有always和conditional两种
always:每次ajax PostBack或者普通的PostBack都能引起panel的更新 如果UpdatePanel设置为Always时,不能使用上面的ChildrenAsTriggers属性,强行使用会报错,是updatepanel默认的更新模式,和设置trigger触发器没有直接的关系。
conditional:只有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel。
只有满足如下某一条件时才更新panel的内容 :
如果设置UpdateMode="conditional" ChildrenAsTriggers="false"时候,子控件不允许触发更新
1). 当panel中的某个控件引发PostBack时
2). 当Panel指定的某个Trigger被引发时
3). RenderMode: 局部更新控件的呈现形式两中:Block(局部更新在客户端以div形式展现)和Inline(局部更新以span的形式展现在客户端)
子元素:
1. contentTemplate: 局部更新控件的内容模板,可以在其中添加任何控件
2. Triggers: 局部更新的触发器,包括俩中:异步回发(AsyncPostBackTrigger) 用来实现局部更新。普通回发(PostBackTrigger)和普通的一养,不管是否使用了局部更新控件,都会引起页面的全部更新。
AsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;
PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送
一般触发服务器控件是都会回发从而刷新整个页面,造成服务器资源的浪费,如果数据量大的话,服务器的承受压力很大,最终会造成页面半天打不开。
采用了updatepanel后,他只刷新updatepanel内的数据,从而避免整个页面刷新,用户效果很好。
下面是使用updatepanel的一些使用方法:
需要在这控件之前加上 scriptManager 控件
UpdatePanel 控制页面的局部更新,这个更新功能依赖于scriptManger控件的EnablePartialRendering属性,如果这个属性设置为false局部更新会失去作用(scriptManger 控件的EnablePartialRendering属性的默认值为true不必刻意去设置)
主要属性:
1. ChildrenAsTriggers : 内容模板内的子控件的回发是否更新本模板(和UpdateMode的conditional有关)
2. UpdateMode : 内容模板的更新模式,有always和conditional两种
always:每次ajax PostBack或者普通的PostBack都能引起panel的更新 如果UpdatePanel设置为Always时,不能使用上面的ChildrenAsTriggers属性,强行使用会报错,是updatepanel默认的更新模式,和设置trigger触发器没有直接的关系。
conditional:只有当前UpdatePanel的Trigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel。
只有满足如下某一条件时才更新panel的内容 :
如果设置UpdateMode="conditional" ChildrenAsTriggers="false"时候,子控件不允许触发更新
1). 当panel中的某个控件引发PostBack时
2). 当Panel指定的某个Trigger被引发时
3). RenderMode: 局部更新控件的呈现形式两中:Block(局部更新在客户端以div形式展现)和Inline(局部更新以span的形式展现在客户端)
子元素:
1. contentTemplate: 局部更新控件的内容模板,可以在其中添加任何控件
2. Triggers: 局部更新的触发器,包括俩中:异步回发(AsyncPostBackTrigger) 用来实现局部更新。普通回发(PostBackTrigger)和普通的一养,不管是否使用了局部更新控件,都会引起页面的全部更新。
AsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;
PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询