1

mojoportalを介して表示されるWebユーザーコントロールがあります。IsPostbackをチェックし、それに応じて要素を非表示にするif条件があります。RadiobuttonListの選択された値に応じてチェックボックスを表示または非表示にするUpdatepanelもあります

ここで問題となるのは、updatepanelを使用するときに、IsPostbackを無効にする必要があります。そうしないと、例外が発生します。

無効なポストバックまたはコールバック引数。イベント検証は、構成で使用するか、ページで<%@ Page EnableEventValidation = "true"%>を使用して有効にします。セキュリティ上の理由から、この機能は、ポストバックまたはコールバックイベントへの引数が、それらを最初にレンダリングしたサーバーコントロールから発生していることを確認します。データが有効で期待される場合は、ClientScriptManager.RegisterForEventValidationメソッドを使用して、検証のためにポストバックまたはコールバックデータを登録します。

どうすればこれを達成できますか?フォームが最初に送信またはロードされた後、要素を非表示にする必要があります。

4

1 に答える 1

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)
于 2013-03-27T15:07:31.100 に答える