0

ModalPopUpExtender は「hiddenTargetControlForModalPopup」への参照を作成します。これは UI の隠しボタンであり、以下に示すコード以外では使用されていないようです。

モーダル ポップアップのターゲットは PANEL pnlNew ですが、TagetControlID が ID="hiddenTargetControlForModalPopup" に割り当てられるのはなぜですか? この配線を理解しようとしているだけです...ありがとう!

CancelControlID="btHiddenOK" は、モーダル ポップアップ コントロールのどこにも使用されていません (モーダル ポップには別のキャンセル ボタンがあります (更新パネルのコメント ..LOT OF CODE のすぐ下にある [保存] ボタンと [キャンセル] ボタンを参照してください)。 ....だから、属性 CancelControlID="btHiddenOK" を削除しようとしました - その結果、モーダル ポップアップが無効になりましたか? btHiddenOK がモーダル ポップアップでさえ使用されていない場合は、削除する必要はありません。効果がありますが、そうではないようですか?

 <asp:Button runat="server" ID="hiddenTargetControlForModalPopup" style="display:none"/>

     <asp:Panel ID="pnlNew" 
                   runat="server"               
                   DefaultButton="hiddenTargetControlForModalPopup"
                   style="width: 575px;">                  
               <!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->    
               <div class="shadowAreaBig" >  
                      <asp:UpdatePanel runat="server" ID="ModalPopupControls" UpdateMode="Conditional"> 
                            <ContentTemplate>                                   
                             <div class="shadowContainer  shadowContainerNew" >



                                <!--    LOT OF CODE       --> 




   <div class="buttonsNew">
                            <span class="buttonSave">
                                <asp:ImageButton AlternateText="Create new user" ID="ImageButton1" runat="server" ImageUrl="~/css/images/buttonSave2.png" OnClick="btOK_Click" OnClientClick="javascript:return validateControls();" TabIndex="110" style='display: none;' /> 
                                <img style="border-width:0px;cursor: default;" alt="Create new user" src="../css/images/buttonSave2_disabled.png" tabindex="110" id="ImageButton1_Disabled" >
                            </span>
                            <span class="buttonCancel"/>
                                <asp:ImageButton AlternateText="Cancel" ID="ImageButton2" runat="server" CausesValidation="False" ImageUrl="~/css/images/buttonCancel.png" OnClientClick="cancel();return false;" TabIndex="111"/>     
                            </span>
                           </div>    


                              </div>
                            </ContentTemplate>
                        </asp:UpdatePanel>                   
               </div> 
                             <!--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->      
            <p class="clearFloat"></p>       
        </asp:Panel>
        </div>   

        <cc1:ModalPopupExtender          
            ID="CreateMPExtender" 
            runat="server"         
            TargetControlID="hiddenTargetControlForModalPopup"
            PopupControlID="pnlNew"
            BackgroundCssClass="modalBackground"
            DropShadow="false" 
            BehaviorID="ModalPopupBehavior"       
            OkControlID="btHiddenOK"
            OnOkScript="ok()"
            OnCancelScript="hideModalPopup()"      
            RepositionMode="RepositionOnWindowResizeAndScroll"
            PopupDragHandleControlID="pnlNewSRO"
            CancelControlID="btHiddenOK"       
            />  

          <asp:Button ID="btHiddenOK" runat="server" Style="visibility:none" />
4

1 に答える 1

1

私が理解し、使用しているモーダル ダイアログは次のとおりです。

PopupControlID は、表示するように割り当てられたボタンをユーザーがクリックしたときに表示するパネル (またはダイアログ) をモーダル ダイアログに指示します。そのため、必須です

TargetControlID は、どのボタンに "Open" イベントを割り当てるかをモーダル ダイアログに伝えます。つまり、このボタンをクリックすると、ダイアログが表示されます。これは必須ですが、可視化する必要はありません。このボタンを非表示にして、javascript またはサーバー コード ビハインドでダイアログを開くことができます。

BackgroundCssClass は、背景の外観を定義する単なる CSS クラスです。これはオプションです

BehaviorID は必要ありません (通常、奇妙な動作が発生することがわかります)。これは、ダイアログが開いたときに起動する JavaScript を記述します。

OkControlId はオプションです。モーダル ダイアログが OK ボタン イベントに使用するボタンです。

どちらのスクリプトもオプションであり、どの JavaScript 関数を呼び出すかをコントロールに伝えるために使用されます。

PopupDragHandleControlID はオプションです。「ドラッグ」イベントに使用するパネルを指定できます。

上で述べたように、CancelControlID と OkControlID はオプションです。これによりモーダル エクステンダーが無効になったり、他の問題が発生したりする場合は、BehaviorID も削除してみてください。これで問題が解決しない場合は、お知らせください。

于 2013-03-26T13:53:50.283 に答える