ASP.NET Ajax Найти компонент проблемы - PullRequest
0 голосов
/ 17 декабря 2009

У меня есть страница, где у меня есть ModalPopUpExtender, который я хочу показать из кода.

Это структура моего сайта, которая представляет собой веб-форму на вложенной главной странице:

    ...
    <asp:Content ID="con" ContentPlaceHolderID="mainContent" runat="server">
        <asp:MultiView ID="tabMultiView" runat="server">
            <asp:View ID="generalTab" runat="server">
                <asp:ScriptManager ID="scriptManager"  runat="server">
                </asp:ScriptManager>

                <ajaxToolkit:ModalPopupExtender ID="newAddressModalPopup" CancelControlID="newAddressDialogCancelButton"
                    BackgroundCssClass="modalBackground" TargetControlID="newAddressLink" PopupControlID="newAddressDialogDiv"
                    runat="server">
                </ajaxToolkit:ModalPopupExtender>
                ...

                <a href="" onclick="openNewAddressDialog()">open dialog</a>

               <script type="text/javascript">


                    function openNewAddressDialog() {
                        $find('<%= newAddressModalPopup.ClientID %>').show();
                    }
                </script>
...

Метод find всегда возвращает ноль. Я также пытался найти компонент и т. Д. Он всегда нулевой. Когда я отладил метод, я заметил, что коллекция компонентов (это своего рода словарь с идентификатором элемента управления в качестве ключа) пуста.

В чем может быть проблема? Кстати, я также использую jQuery на этой странице.

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 17 декабря 2009

Хорошо, я нашел это. TargetControl не отображался в HTML, потому что он был в другом представлении.

0 голосов
/ 17 декабря 2009

В вашей функции JavaScript попробуйте использовать document.getElementById("ctl00_ContentPlaceHolder1_newAddressModalPopup"). Может быть, это работает. Дайте мне знать, если у вас возникнут проблемы.

Или попробуйте установить BehaviorID="someid" для модального popupextender и использовать этот код JavaScript:

function changeValue()
{
    var myBehavior = $find("myBehavior1");
    myBehavior.show();
}

Или:

var modalDialog = $find("newAddressModalPopup"); 
// Get reference to modal popup using the Ajax API $find() function.

 if (modalDialog != null) {
     modalDialog.show();
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...