0

ページに 1 つのコンボボックスと 1 つのボタン (およびその他のコントロール) の 4 つのテキスト ボックスがあります。テキストボックスに入力された値に基づいて、関連する値がコンボボックスで更新されます。私のページの送信ボタンをクリックすると、次のエラーが発生しました。

「無効なポストバックまたはコールバック引数です。イベントの検証は、構成またはページで使用して有効にされています。セキュリティの目的で、この機能は、ポストバックまたはコールバック イベントへの引数が、それらを最初にレンダリングしたサーバー コントロールから発信されていることを確認します。データが有効であり、期待される場合.ClientScriptManager.RegisterForEventsValidation検証のためにポストバックまたはコールバック データを登録するには、メソッドを使用してください。"

追加したページディレクティブで

<%@Page EnableEentValidation="false"> 

4 つのテキスト ボックスに値を入力すると、対応する値が cobobox に表示されます。しかし、そのコンボボックスの値を選択すると、選択した値が削除されます。この理由は何ですか?

<%@ Page Language="C#" MasterPageFile="~/Main.Master" AutoEventWireup="true" CodeBehind="AddeChecklist.aspx.cs"
    Inherits="LabTrack.WebApplication.Echecklist.AddeChecklist" EnableEventValidation ="false" %>

<%@ Register TagPrefix="Labinal" TagName="AutoCompleteControl" Src="~/UserControls/AutoCompleteEnabledWebUserControl.ascx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link href="../Styles/CheckListRev.css" rel="stylesheet" type="text/css" />
    <!-- Style for the page -->
    <link href="../Styles/AddeChecklist.css" rel="stylesheet" type="text/css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server">
    </asp:ScriptManager>
    <asp:Panel ID="ErrorMessagePanel" CssClass="ErrorPanel" Visible="true" runat="server">
        <div class="ErrorDiv">
            <asp:BulletedList CssClass="ErrorMessage" ID="ErrorMessageBulletedList" runat="server">
            </asp:BulletedList>
        </div>
    </asp:Panel>
    <div class="PageTitle">
        <asp:Label ID="PageHeaderLabel" runat="server"></asp:Label>
    </div>
    <div class="MainDiv">
        <div style="text-align: center;">
            <div class="PlaceHolder">
                <table id="formTable">
                    <tr>
                        <td>
                            <asp:UpdatePanel runat="server" ID="updatepanelCustomer" UpdateMode="Conditional">
                                <ContentTemplate>
                                    <span class="boldLabelLong">Customer:</span><br />
                                    <asp:TextBox ID="CustomerNameTextBox" Width="200" runat="server"></asp:TextBox>
                                    <asp:HiddenField ID="IxCustomerHiddenField" runat="server" />
                                    <asp:Button ID="customerTriggerbutton" runat="server" Text="Button" Style="display: none;" />
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </td>
                        <td>
                            <asp:UpdatePanel runat="server" ID="updatepanelProgram" UpdateMode="Conditional">
                                <ContentTemplate>
                                    <span class="boldLabelLong">Program:</span><br />
                                    <asp:TextBox ID="ProgramNameTextBox" Width="200" runat="server"></asp:TextBox>
                                    <asp:Button ID="programTriggerbutton" runat="server" Text="Button" Style="display: none;" />
                                    <asp:HiddenField ID="IxProgramHiddenField" runat="server" />
                                </ContentTemplate>
                                <Triggers>
                                    <asp:AsyncPostBackTrigger ControlID="customerTriggerbutton" EventName="Click" />
                                </Triggers>
                            </asp:UpdatePanel>
                        </td>
                        <td>
                            <asp:UpdatePanel runat="server" ID="updatepanelWorkPackage" UpdateMode="Conditional">
                                <ContentTemplate>
                                    <span class="boldLabelLong">WorkPackage:</span><br />
                                    <asp:TextBox ID="WorkPackageNameTextBox" Width="200" runat="server"></asp:TextBox>
                                    <asp:HiddenField ID="IxWorkPackageHiddenField" runat="server" />
                                    <asp:Button ID="workPackageTriggerbutton" runat="server" Text="Button" Style="display: none;" />
                                </ContentTemplate>
                                <Triggers>
                                    <asp:AsyncPostBackTrigger ControlID="programTriggerbutton" EventName="Click" />
                                </Triggers>
                            </asp:UpdatePanel>
                        </td>
                        <td>
                            <asp:UpdatePanel runat="server" ID="updatepanelActivity" UpdateMode="Conditional">
                                <ContentTemplate>
                                    <span class="boldLabelLong">Activity:</span><br />
                                    <asp:TextBox ID="ActivityNameTextBox" Width="200" runat="server"></asp:TextBox>
                                    <asp:HiddenField ID="IxActivityHiddenField" runat="server" />
                                    <asp:Button ID="activityTriggerbutton" runat="server" Text="Button" Style="display: none;" />
                                </ContentTemplate>
                                <Triggers>
                                    <asp:AsyncPostBackTrigger ControlID="workPackageTriggerbutton" EventName="Click" />
                                    <asp:AsyncPostBackTrigger ControlID="activityTriggerbutton" EventName="Click" />
                                </Triggers>
                            </asp:UpdatePanel>
                        </td>
                    </tr>
                </table>
            </div>
            <div class="PlaceHolder">
                <asp:Label ID="TemplateLabel" Text="Template:" CssClass="ControlLabel" runat="server"></asp:Label>
                <asp:UpdatePanel runat="server" ID="updatepanelTemplate" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:DropDownList ID="TemplateSelectDropDownList" runat="server" Width="400" Visible="true"
                            AutoPostBack="true">
                        </asp:DropDownList>
                        <asp:HiddenField ID="IxTemplateHiddenField" runat="server" />
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="workPackageTriggerbutton" EventName="Click" />
                    </Triggers>
                </asp:UpdatePanel>
                <asp:Panel ID="SustainPanelTemplateOwner" Visible="true" runat="server">
                    <div>
                        <asp:Label ID="TemplateOwnerLabel" Text="Owner:" CssClass="ControlLabel" runat="server"></asp:Label>
                        <asp:TextBox ID="TemplateOwnerTextBox" CssClass="controlMargin" Width="400" runat="server"></asp:TextBox>
                    </div>
                </asp:Panel>
                <asp:HiddenField ID="IxDeliverableHiddenField" runat="server" />
                <asp:HiddenField ID="IxReleaseActionHiddenField" runat="server" />
                <asp:HiddenField ID="IxConfigHiddenField" runat="server" />
                <asp:HiddenField ID="IxTemplateOwnerHiddenField" runat="server" />
                <asp:HiddenField ID="TemplateSelectedSnameHiddenField" runat="server" />
                <asp:HiddenField ID="TemplateOwnerSelectedsNameHiddenField" runat="server" />
                <asp:HiddenField ID="DeliverableSelectedHiddenField" runat="server" />
                <div>
                    <asp:Label ID="DeliverableLabel" CssClass="ControlLabel" runat="server" Text="Deliverable:"></asp:Label>
                    <asp:TextBox ID="DeliverableTextBox" CssClass="controlMargin" Width="400" runat="server"></asp:TextBox>
                </div>
                <asp:Panel ID="SustainPanelConfig" Visible="true" runat="server">
                    <div>
                        <asp:Label ID="ConfigurationLabel" runat="server" Text="Configuration:" CssClass="ControlLabel"></asp:Label>
                        <select id="ConfigurationSelect" class="controlMargin">
                            <option></option>
                        </select>
                    </div>
                </asp:Panel>
                <asp:Panel ID="SustainPanelRelease" Visible="true" runat="server">
                    <div>
                        <asp:Label ID="ReleaseActionLabel" CssClass="ControlLabel" runat="server" Text="Release Action:"></asp:Label>
                        <asp:TextBox ID="ReleaseActionTextBox" CssClass="controlMargin" Width="400" runat="server"></asp:TextBox>
                    </div>
                </asp:Panel>
                <asp:Panel ID="SustainPanel" Visible="true" runat="server">
                    <div class="SustainPanelControls">
                        <div>
                            <asp:Label ID="ChangeLabel" Text="Change #: " runat="server"></asp:Label>
                        </div>
                        <div>
                            <asp:TextBox ID="ChangeTextBox" Width="110" runat="server"></asp:TextBox>
                        </div>
                        <div>
                            <asp:Label ID="SupplementLabel" Text="Supplement: " runat="server"></asp:Label>
                        </div>
                        <div>
                            <asp:TextBox ID="SupplementTextBox" Width="80" runat="server"></asp:TextBox>
                        </div>
                        <div>
                            <asp:Label ID="NewWrrLabel" Text="WRR #: " runat="server"></asp:Label>
                        </div>
                        <div>
                            <asp:TextBox ID="NewWrrTextBox" Width="80" runat="server"></asp:TextBox>
                        </div>
                        <div>
                            <asp:Label ID="DddLabel" Text="3D: " runat="server"></asp:Label>
                        </div>
                        <div>
                            <asp:TextBox ID="DddTextBox" Width="80" runat="server"></asp:TextBox>
                        </div>
                    </div>
                    <div>
                        <table id="DesignDataTable2">
                            <tr>
                                <td>
                                    <asp:Label ID="AllFbSheetsWrrLabel" Text="All F/B Sheets w/WRR #:" CssClass="ControlLabel" runat="server"></asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox CssClass="completeControl" ID="AllFbSheetsWrrTextBox" Width="588" Rows="2"
                                        TextMode="MultiLine" runat="server"></asp:TextBox>
                                </td>
                            </tr>
                        </table>
                    </div>
                </asp:Panel>
            </div>
            <div class="EditButtonGroup">
                <input id="EditButton" type="button" value="Edit" class="ButtonSettings" />
                <input id="RemoveButton" type="button" value="-" class="ButtonSettings" />
                <input id="AddButton" type="button" value="+" class="ButtonSettings" />
            </div>
        </div>
        <div class="ViewData">
            <div class="ViewDataDiv">
                <table id="DesignDataTable" class="designDataTable">
                    <tbody>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="submitButtonDiv">
            <asp:Button ID="SubmitButton" runat="server" Text="Button Text" class="submitButtonCreateChecklist" />
        </div>
    </div>
</asp:Content>
4

2 に答える 2

1

クライアント側で新しい値を作成し、それらをサーバーにポストします。

セキュリティ上の理由から、ASP.NET は「イベント検証」を実装しています。偶数検証が有効になっている場合、サーバーが 3 つの可能な値を持つコンボを作成すると、ポストバックでこの値のみが受け入れられます。別の値を作成してサーバーに送り返すと、参照しているエラーが発生します。

ここにいくつかの情報があります: Page.EnableEventValidation プロパティ

クライアント側で生成される可能性のある値がわかっている場合はClientScriptManager.RegisterForEventValidation メソッドを使用でき、事前にわからない場合は検証を完全に無効にできます。

検証を無効にするには:

Web.config ファイルの @ Page ディレクティブの enableEventValidation 属性または pages 要素の enableEventValidation 属性を設定して、EnableEventValidation プロパティを設定します。このプロパティをコードで設定する場合は、ページを初期化する前に設定する必要があります。

于 2012-06-05T10:15:03.960 に答える
1

Viewstate が値を上書きする問題のように聞こえます。

を使用して値を直接取得してみてくださいRequest.Form[Dropdown.ClientId]

于 2012-06-05T09:37:38.487 に答える