Следующий код правильно отображает всплывающее окно, но при нажатии любой кнопки во всплывающем окне выдается ошибка (см. Ниже кода).
Я не могу отключить EventValidation, так как это необходимо для других целей на странице. Как это решить?
<asp:UpdatePanel ID="MainUpdatePanel" runat="server" RenderMode="Inline" UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<asp:HyperLink ID="link" runat="server"></asp:HyperLink><asp:MultiView ID="MultiViewSearchState"
runat="server" ActiveViewIndex="0">
<asp:View ID="ViewCommands" runat="server">
<asp:Button ID="btn" runat="server" Text="Select" OnClick="btn_Click" /> <asp:Button
ID="ButtonClear" runat="server" Text="Clear" OnClick="ButtonClear_Click" />
</asp:View>
<asp:View ID="ViewSearch" runat="server">
<asp:Panel runat="server" ID="pnlMain" CssClass="modalPopup" EnableViewState="false">
<asp:Button ID="ButtonCancel" runat="server" Text="Cancel" OnClick="ButtonCancel_Click" />
<dyncontrols:SearchControl runat="server" ID="searchControl" ExecuteSearch="false" />
</asp:Panel>
<input type="hidden" id="popupDummyTarget" runat="server" />
<ajaxToolkit:ModalPopupExtender ID="popUpControl" runat="server" TargetControlID="popupDummyTarget"
PopupControlID="pnlMain" BackgroundCssClass="modalBackground">
</ajaxToolkit:ModalPopupExtender>
</asp:View>
</asp:MultiView>
</ContentTemplate>
The error as shown in the Internet Explorer debugger:
SCRIPT5022: Sys.WebForms.PageRequestManagerServerErrorException: Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
popUpControl.Show()
после того, как связали свой контроль над обратной передачей? Я также считаю (как и Town), что нет необходимости помещать расширитель в UpdatePanel. Вам нужно только убедиться, что вашpnlMain
тоже находится за пределами UpdatePanel. Поместите только контент (без самого всплывающего элемента управления) в UpdatePanel. - person Tim Schmelter   schedule 08.06.2011pnlMain
за пределы UpdatePanel. Я имел в виду, что вы должны поместить элемент управления с идентификаторомPopupControlID
ModalPopupExtender и сам расширитель вне UpdatePanel. Вы можете создать еще один div для всплывающего окна, включая строку заголовка, когда это необходимо (как в обычном окне), и использовать его идентификатор как PopupControlID. PnlMain и т. Д. Могут остаться в UpdatePanel. - person Tim Schmelter   schedule 09.06.2011