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

本文关键字:隐藏 元素 提交 用户 控件 Web | 更新日期: 2023-09-27 18:05:58

我有一个通过mojportal显示的web用户控件。我有一个if条件,检查IsPostback并相应地隐藏元素。我还有一个Updatepanel,它根据RadiobuttonList

的选定值显示或隐藏一个复选框。

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

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

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

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

当控件中的值在其原始状态和返回状态之间存在差异时,就会发生这种情况。解决这个问题最简单快捷的方法就是在页眉中添加以下内容:

 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)