2012-01-19 30 views
4

有人知道如何從客戶端關閉Ballon Popup Extender嗎? 一切都很好,但因爲我設置了BPE顯示鼠標懸停時實在是impratical,它不會對任何鼠標關閉或隱藏方法了我試過:關閉AJAX控件工具包BallonPopupExtender鼠標移出

function hideElement() { 
     document.getElementById(ID).style.display = 'none'; 
    } 

function hideControl() { 
    document.getElementById('<%=ID.ClientID%>').style.visibility = "hidden"; 
    return false; 
} 

我迷上了上面的方法一的divs onmouseout,我可以隱藏頁面上的任何控件,但不能隱藏BPE,我試圖按照BPE所針對的面板做同樣的事情,但沒有發生任何事情。

有沒有我錯過的或是BPE就是這樣?

+0

也許下面的鏈接將幫助你:http://stackoverflow.com/questions/8286741/hide-show-ajax-cloud-balloonpopupextender – Hans

+0

這太棒了!感謝Hans。 – formatc

回答

3

這實際上不是太強悍。您可以在頁面上創建一個像這樣的方法:

<script type="text/javascript"> 
    function hidePopup() { 
     var popupObject = document.getElementById("<%= Panel1.ClientID %>"); 
     popupObject.BalloonPopupControlBehavior.hidePopup(); 
    } 
</script> 

然後調用這個函數從onmouseout事件是你的BalloonPopupExtender TargetControlID(在我的例子Panel1)控制的。下面是我用來測試javascript的代碼:

<asp:Panel ID="Panel1" runat="server" BackColor="#009900" Height="50px" 
    Width="50px" onmouseout="hidePopup();"> 
</asp:Panel> 
<asp:BalloonPopupExtender ID="Panel1_BalloonPopupExtender" runat="server" 
    CustomCssUrl="" DisplayOnClick="False" DisplayOnMouseOver="True" 
    DynamicServicePath="" Enabled="True" ExtenderControlID="" 
    TargetControlID="Panel1" BalloonPopupControlID="junk"> 
</asp:BalloonPopupExtender> 

<div id="junk"> 
    Hey! Here's some stuff! 
</div> 
+0

Omg這真的很簡單我正在尋找這一行:popupObject.BalloonPopupControlBehavior.hidePopup(); 謝謝! – formatc

+0

@ user1010609不客氣!僅供參考,我在JavaScript代碼的第一行中放置了一個斷點,以便檢查AJAXControlToolkit添加到div的哪個位置,這是我發現函數調用的地方=) – jadarnel27

+1

現在真的是非常好的信息我知道如何在需要時進行窺視未來。 – formatc

2

正是我在找的東西。但不是所有額外的JavaScript,只需將onmouseout="BalloonPopupControlBehavior.hidePopup();"放在控件中。