0

我想弄清楚这里有什么问题..当我在我的更新面板中禁用用户控件的 Viewstate 时,它​​只是不更新​​内容。

这是我的代码:

如果我将 Page ViewState-true 设置为工作正常,但在我需要时它不会隐藏它。

<asp:UpdatePanel ID="CheckoutUpdatePanel" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
         <uc:ClickAndCollect ID="ClickAndCollectPanel" runat="server" Visible="false" EnableViewState="false" />
         </ContentTemplate>
 </asp:UpdatePanel>

=======================

我的用户控制

我的 UserControl 也包含在 updatePanel..

--:即使我禁用它,它也不会对 ViewState 产生任何影响。它在其他页面上工作正常

请帮忙。

谢谢,米兰P

4

2 回答 2

1
I think you should have ViewState information enabled always 
for doing update with Update Panel.

The update panel will refer the control state using ViewState even 
for partial request. This is why sometimes people say ASP.Net is evil, 
since it sends the whole page view state for every ajax request as parameter. 

所以我认为更新面板/ asp.net ajax 严重依赖于 ASP.Net Ajax的视图状态

http://encosia.com/why-aspnet-ajax-updatepanels-are-dangerous/

限制 AJAX 调用的视图状态信息

于 2012-12-18T11:53:24.383 回答
1

当我在更新面板中禁用用户控件的 Viewstate 时,它​​只是不更新​​内容。

由于您是UpdatePanelUpdateMode有条件的”,因此您需要Update手动进行。

例如,在您想要显示/隐藏它的事件处理程序中的某处:

ClickAndCollectPanel.Visible = false;
CheckoutUpdatePanel.Update();

UpdatePanel.Update方法

如果您有必须执行以确定是否应更新 UpdatePanel 控件的服务器代码,请调用 Update 方法。如果您计划使用 Update 方法,请将 UpdateMode 属性设置为 Conditional。如果您希望决定在服务器逻辑中更新面板,请确保 ChildrenAsTriggers 属性为 false,并且没有为面板定义显式触发器。

于 2012-12-18T11:17:37.340 回答