2

私はしばらく使っていないAjaxControlToolkitを使用しています。私はasp:Panelに簡単なフォームを作成しました。一つのフィールドと必須のフィールドバリデーターがあります。フォームが有効でない場合は、フォームを閉じないようにしたいと思います。私はこの一見単純な仕事をどのように達成するかを考え出すことができない。コードは私が現在いるところから提供されています。誰かがこれを達成するための解決策を知っていますか?モーダルポップアップフォームの検証に失敗しても[OK]をクリックすると閉じます

<%@ Control Language="C#" 
      AutoEventWireup="true" 
      CodeBehind="Supplier_VAN_Config.ascx.cs" 
      Inherits="PPGEDI.App_Controls.Supplier.Supplier_VAN_Config" %> 


<asp:DropDownList ID="ddlVanGroups" 
        runat="server" 
        AutoPostBack="true" 
        OnSelectedIndexChanged="ddlVanGroups_selectedIndexChanged" /> 
<asp:LinkButton ID="addVanGroup" runat="server" Text="Add New VAN Group" /> 



<ajaxToolkit:ModalPopupExtender ID="MPE" runat="server" 
    TargetControlID="addVanGroup" 
    PopupControlID="pnlAddVanGroup" 
    BackgroundCssClass="modalBackground" 
    DropShadow="true" 
    OkControlID="addVanGroupOK" 
    CancelControlID="addVanGroupCancel" 
    PopupDragHandleControlID="pnlAddVanGroupHeader" /> 

<asp:Panel ID="pnlAddVanGroup" 
      runat="server" 
      style="display: none;" 
      CssClass="modalPopup" > 
    <asp:Panel ID="pnlAddVanGroupHeader" 
      runat="server" 
      CssClass="modalHeader"> 
     Add New Van Group 
    </asp:Panel> 

    <div class="formInfo"> 
     <span class="formLabel">Group Name: 
     <asp:TextBox CssClass="formInput" 
         ValidationGroup="AddNewVanPopup" 
         ID="txtNewVanGroupName" 
         runat="server" /> 
     </span> 
     <asp:RequiredFieldValidator ID="rfvGroupName" 
            runat="server" 
            ValidationGroup="AddNewVanPopup" 
            ControlToValidate="txtNewVanGroupName" 
            Display="Static" 
            ErrorMessage="Group Name is required" 
            Text="Group Name is required" /> 

    </div> 


    <asp:LinkButton ID="addVanGroupOK" 
        Text="ADD" 
        ValidationGroup="AddNewVanPopup" 
        runat="server" /> 
    <asp:LinkButton ID="addVanGroupCancel" 
        runat="server" 
        Text="Cancel" /> 
</asp:Panel> 

[追加]ボタンをクリックすると、テキストボックスが空のときにエラーメッセージが表示され、ボックスが閉じます。もう一度リンクをクリックすると、フォームが表示され、エラーメッセージが表示されます。私はこれをjavascriptで処理する必要がありますか?

答えて

2

送信したコードの問題は、OkControlID="addVanGroupOK"を使用していることです。それはポップアップを閉じ、それをクリックするためにサーバー側イベントを吸収します。 OnOkScriptで処理できますが、手動でaddVanGroupOK_Clickサーバー側イベントを発生させる必要があります(このイベントを発生させるには、このイベントが必要です)。

私は手動でここにいくつかのスクリプトはJavaScript

を使用して、検証時にポップアップを閉じ示唆

function HideMPEPopup() { 
    $find(MPE).hide(); 

} 
function ValidateAndHideMPEPopup() { 
    // hide the Popup 
    if (Page_ClientValidate('AddNewVanPopup')) { 
     HideMPEPopup(); 
    } 
} 

それからちょうどaddVanGroupOKボタンにこのスクリプトをプラグインしていけないからOkControlIDを削除することを忘れをModalPopupExtender。

<asp:LinkButton ID="addVanGroupOK" 
       Text="ADD" 
       ValidationGroup="AddNewVanPopup" 
       CausesValidation="true" 
       OnClientClick="ValidateAndHideMPEPopup()" 
       /> 
関連する問題