Web用户控件提交后隐藏元素

时间:2013-03-26 07:56:13

标签: c# asp.net ascx webusercontrol mojoportal

我有一个通过mojoportal显示的Web用户控件。 我有一个if条件,检查IsPostback并相应地隐藏元素。 我还有一个Updatepanel,根据RadiobuttonList的选定值显示或隐藏一个复选框

现在的问题是,当我使用updatepanel时,我必须禁用IsPostback,否则我会收到异常

  

无效的回发或回调参数。使用配置或<%@ Page EnableEventValidation =“true”%>启用事件验证在一个页面中。出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。

我怎样才能做到这一点? 我需要在第一次提交或加载表单后隐藏元素。

1 个答案:

答案 0 :(得分:0)

当控件中的值在其原始状态和回发后不同时会发生这种情况。解决此问题的快捷方法是将其添加到页眉:

 EnableEventValidation = "False"

IE:

<%@ Page Language="VB" AutoEventWireup="false" Inherits="myPage" Codebehind="MyPage.aspx.vb" EnableEventValidation="false"  MasterPageFile="~/Site.Master" %>

但这为简单而牺牲了安全性。如果安全性不是问题,这将起作用。另外,你需要找出哪个控件导致这个寄存器用于回发,如下所示:

     ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(Me.myControl)
相关问题