2012-01-19 4 views
4

Кто-нибудь знает, как закрыть Ballon Popup Extender с клиентской стороны? Все это хорошо, но так как я создал BPE для отображения при наведении курсора мыши это действительно impratical, что он не имеет какой-либо близок или скрыть метод на мыши, что я пробовал:Закрыть AJAX Control Toolkit 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

Это замечательно! Спасибо, Ханс. – formatc

ответ

3

Это на самом деле не слишком сложно. Вы можете создать метод, как это на странице:

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

И затем вызвать эту функцию из вашего onmouseout случае контроля, который является вашим TargetControlID для BalloonPopupExtender (в моем примере 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 Добро пожаловать! FYI, я поставил точку останова в первой строке кода javascript, чтобы проверить, что AJAXControlToolkit добавил в div, где я нашел, что функция call =) – jadarnel27

+1

Действительно отличная информация сейчас Я знаю, как заглянуть, когда это необходимо в будущее. – formatc

2

Именно то, что я искал. Но вместо всего лишнего javascript просто установите onmouseout="BalloonPopupControlBehavior.hidePopup();" в элемент управления.