模态弹出扩展器和更新面板

时间:2013-03-21 17:16:56

标签: asp.net-ajax updatepanel ajaxcontroltoolkit modalpopupextender

ModalPopUpExtender引用" hiddenTargetControlForModalPopup" - 这是UI上的隐藏按钮,除了下面显示的代码外,它似乎没有在任何地方使用。

模式弹出窗口的目标是PANEL pnlNew,那么为什么TagetControlID分配给ID =" hiddenTargetControlForModalPopup"?只是想了解这种布线......谢谢!

CancelControlID =" btHiddenOK"在模态弹出控件的任何地方都没有使用(模态弹出窗口上有一个单独的取消按钮(请参阅注释下面的更新面板中的SAVE和CANCEL按钮.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" />

1 个答案:

答案 0 :(得分:0)

据我所知,并使用模态对话框:

PopupControlID告诉模式对话框,当用户单击指定显示它的按钮时,将显示哪个面板(或对话框)。因此,这是必需的

TargetControlID告诉模态对话框指定其“打开”事件的按钮。换句话说,单击此按钮时,显示对话框。虽然这是必需的,但不需要使其可见。您可以隐藏此按钮并在javascript或后面的服务器代码中打开对话框

BackgroundCssClass只是一个CSS类,用于定义背景的外观。这是可选的

不需要BehaviorID(我发现通常会导致奇怪的行为)。这描述了对话框打开时要触发的javascript。

OkControlId是可选的。它是模态对话框用于其OK按钮事件的按钮

这两个脚本都是可选的,只是用于告诉contorl要调用的javascript函数。

PopupDragHandleControlID是可选的。你可以告诉“Drag”事件使用哪个面板。

正如我上面提到的,CancelControlID和OkControlID是可选的。如果您发现这会禁用模态扩展器或导致其他问题,请尝试删除BehaviorID。如果这没有帮助,请告诉我。