JQuery в ASP.Net пользовательский контроль в C # - PullRequest
1 голос
/ 16 сентября 2009

Я пытаюсь добавить JQuery в ASP.Net User Control, чтобы проверить, установлены ли флажки или нет. Похоже, что языки сценариев не поддерживаются непосредственно в пользовательских элементах управления, но их необходимо добавить с помощью метода RegisterStartupScript (). Я нашел сообщение по этому адресу, описывающее это: http://www.codeproject.com/KB/aspnet/Javascript_in_Usercontrol.aspx. В сообщении говорится, что в коде файла вы создаете синтаксис кода сценария в виде строки, а затем отправляете его в качестве параметра в метод RegisterStartupScript (). У меня проблемы с тем, чтобы заставить это работать, и я надеялся, что кто-то знает, как лучше добавить скрипт в пользовательский элемент управления ASP.Net.

Я создал упрощенный образец, и вот разметка для моего пользовательского элемента управления:

<%@ Control Language="C#" ClassName="UC" AutoEventWireup="true" 
    CodeFile="UC.ascx.cs" Inherits="UserControls_UC" %>

<span id="Licenses"></span>

<script type="text/javascript">
    $(document).ready(function() {
        var ctlID = $("span[id$='Licenses']");
        ctlID.text = "Testing";
    });
</script>

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

Ответы [ 4 ]

3 голосов
/ 16 ноября 2012

Если вы используете вышеупомянутый подход без RegisterStartupScript(), вы столкнетесь с проблемой при многократном использовании usercontrol на одной странице.

Таким образом, наилучший предлагаемый способ - сгенерировать скрипт для кода с помощью RegisterStartupScript()

1 голос
/ 16 сентября 2009

Все, что вам нужно сделать, это добавить тег элемента управления на элемент управления.

<script type="text/javascript">
    $(function(){
        if ($('input:checkbox:checked').size() === 5) {
            // Do Something
        }
    });
</script>
0 голосов
/ 07 июля 2012

Вы получили ошибку, потому что $ не определен. Вы должны включить библиотеку jQuery в пользовательский элемент управления.

0 голосов
/ 16 сентября 2009

Я думаю, что RegisterStartupScript () - лучшее решение для вашей задачи. Почему это не работает для вас? Если вы используете встроенный тег внутри UserControl, у вас есть шанс получить спагетти из блоков Html и JavaScript, RegisterStartupScript () создает только один блок.

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