Вызов всплывающего окна из popupcontrolextender программно - PullRequest
0 голосов
/ 13 сентября 2010

Я хотел бы вызвать всплывающее окно popupcontrolextender программно.Возможно ли это?

1 Ответ

4 голосов
/ 13 сентября 2010

Вы можете получить дескриптор объекта клиента для всплывающего окна, указав BehaviorID и используя функцию $find(). Вот небольшой рабочий код (IE7) всплывающего кода, который показывает, когда курсор находится над текстовым полем, и исчезает, когда курсор перемещается из текстового поля.

<asp:TextBox ID="textbox" runat="server"
    onmouseover="$find('mybehavior').showPopup();"
    onmouseout="$find('mybehavior').hidePopup();" />
<asp:Panel ID="panel" runat="server">
    Hello, World!
</asp:Panel>
<ajax:PopupControlExtender ID="popup" runat="server"
    TargetControlID="textbox"
    BehaviorID="mybehavior"
    PopupControlID="panel"
    Position="Bottom" />

Обновление:

Для отображения всплывающего окна из серверного скрипта требуется зарегистрировать JavaScript в соответствующем месте в жизненном цикле JavaScript. Блоки клиентского скрипта выглядят слишком рано, так как поведение, возможно, не было инициализировано. Приведенный ниже фрагмент кода регистрирует скрипт запуска, который, в свою очередь, регистрирует функцию для открытия всплывающего окна при событии загрузки на стороне клиента.

var script = @"Sys.Application.add_load(function() { $find('mybehavior').showPopup(); });";
ScriptManager.RegisterStartupScript(this, GetType(), "ShowPopup", script, true);
...