2011-12-13 50 views
1

如何在显示ModalPopupExtender时禁用动画效果?这里是我的编码:禁用模态弹出式扩展程序的动画

HTML

<script language ="javascript" type="text/javascript"> 
    function pageLoad() { 
     var mpe = $find("modalPopUp"); 
     //add shown will be fire when when the ModalPopupExtender had shown 
     mpe.add_shown(onShown); 

    } 
    function onShown() { 
     var background = $find("modalPopUp")._backgroundElement; 
     background.onclick = function() { $find("modalPopUp").hide(); } 
    } 
</script> 

<asp:UpdatePanel ID ="updatePanel" runat="server"> 
    <ContentTemplate> 
<asp:Panel ID="Panel1" runat="server" BackColor="Azure"> 
    <asp:UpdatePanel ID="updatePanel2" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 


    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" /> 
    <br /> 
    <br /> 
    <br /> 
    <br /> 
    <br /> 

    </ContentTemplate> 
    </asp:UpdatePanel> 

</asp:Panel> 


    <!--Register modal pop up--> 
    <asp:ModalPopupExtender ID="modalPopUp" runat="server" 
    TargetControlID="Button1" PopupControlID="Panel1" 
    BackgroundCssClass="overlay_style" BehaviorID="modalPopUp" > 
     <Animations> 
     <OnShown> 
      <FadeIn duration="0.5" Fps="100" /> 
     </OnShown> 
    </Animations> 
     </asp:ModalPopupExtender> 
<asp:Button ID="Button1" runat="server" Text="Button" /> 
</ContentTemplate> 
    </asp:UpdatePanel> 

我的后端代码:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    this.modalPopUp.Show(); 
} 

如何禁用动画,而我点击button2到advoid重复的效果?

回答

1

您可以从服务器端访问动画属性。所以你可能OnShown属性设置为null,以便它不重复(如果需要再次恢复,可能会将动画保存在变量中)。事情是这样的:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    // Store the current "OnShown" animation for possible later use 
    AjaxControlToolkit.Animation onShownAnim = modalPopup.OnShown; 
    // Set the "OnShown" animation propert to null to disable the animation 
    modalPopup.OnShown = null; 

    modalPopup.Show(); // Now your popup shows without any animation, hooray! 
} 

注:关于onShownAnim - 你一定要使用的东西比一个局部变量来保存当前OnShown财产,如果你需要将其还原更执着,但我认为你的想法= )

+0

谢谢。你帮了我很多。 :) – user998405

+0

顺便说一句如何恢复动画? – user998405

+0

@ user998405很简单 - >你可以将它存储在你的代码隐藏页面的全局变量中(将它命名为“onShownAnim”)。然后当你想恢复它。只需使用'modalPopup.OnShown = onShownAnim;'你的动画就会回到 – jadarnel27

相关问题