Как я могу создать и вызвать функцию JavaScript на динамически загруженном пользовательском элементе управления? - PullRequest
1 голос
/ 26 мая 2010

Когда я пытаюсь вызвать функцию JavaScript в динамически загруженном пользовательском элементе управления, она не может найти указанную функцию. У меня есть пользовательский элемент управления для organizationDetails.ascx. Там я использую модальное расширение всплывающего окна, чтобы получить некоторую информацию от пользователя, а затем я проверяю адрес через Google и предлагаю правильный формат. Я пытаюсь использовать java-скрипт для функции, вызываемой для onBlur текстового поля, но firebug mozilla говорит, что функция не определена, что не так. Было бы здорово, если бы кто-то мог помочь мне здесь.


РЕДАКТИРОВАНИЕ: Javascript находится на странице ascx в начале, и пользовательский контроль загружается с использованием базового класса, чтобы показать детали организации и редактировать их.

Страница ascx имеет следующие теги на панели, которые вызываются модальным всплывающим окном.

                <padrap:DropDownList    ID                  ="ddlStateID"
                                        onChange            ="setContextKey2()"
                                        runat               ="server" />

                            <br />                  
                <padrap:Label           ID                  ="lCity"
                                        Text                ="City: "
                                        AssociatedControlID ="tbrCity" 
                                        runat               ="server" 
                                        CssClass            ="col2"/>                       


                <asp:TextBox            ID                  ="tbrCity"
                                        onBlur              ="setContextKey2()"
                                        runat               ="server" />                        


              <br />

<script type="text/javascript">
    alert('i hate javascript');

     var dependentBehaviors = [
            'tbCity_ace_b'
        ];

        var address = {};
    function setContextKey2(){
    //some javascript
            address.addressLine1 = $get('<%=tbrAddressID1.ClientID %>').value;
            address.addressLine2 = $get('<%=tbrAddressID1.ClientID %>').value;
            address.addressLine3 = $get('<%=tbrAddressID1.ClientID %>').value;
            address.countryISO2 = $get('<%=ddlCountryID.ClientID%>').value;
            address.stateCode = $get('<%=ddlStateID.ClientID%>').value;
            address.city = $get('<%=tbrCity.ClientID%>').value;
            address.postalCode = $get('<%=tbrPostalCode.ClientID%>').value; */

            var contextStr = Sys.Serialization.JavaScriptSerializer.serialize(address)

            var behavior = $find('tbCity_ace_b')
            behavior.set_contextKey(contextStr);

            var behavior2 = $find('tbPostalCode_ace_b')
            behavior2.set_contextKey(contextStr);
    }
 </script>

Функция для setContextKey2 () определяется в начале страницы. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо, Ратан

1 Ответ

1 голос
/ 26 мая 2010

Эй, эта ссылка может помочь. Это очень простой вопрос

Выпуск Jquery и Ajax


EDITED

Проблема в том, что ваш ajax-вызов не регистрирует ваш скрипт-тег. Если вы разместите скрипт на своей главной странице, а не ascx, тогда это будет работать. Или вы можете получить тег script из ответа ajax, а затем зарегистрировать его в dom.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...