Использование Jquery в UserControl с MasterPage - PullRequest
1 голос
/ 13 февраля 2011

Я не могу заставить Javascript работать на моем контроле пользователя.Все, что я хочу сделать, это считать символы в многострочном текстовом поле (что добавляет еще один уровень сложности).Я хочу посчитать символы и отобразить их в метке.

У меня есть JavaScript в файле .js, включенном в MasterPage:

function textCounter(field, countfield, maxlimit) {
    var output = document.getElementById(countfield);
    if (output == null) { return; }

    if (field.value.length > maxlimit)
        field.value = field.value.substring(0, maxlimit);
    else
        output.value = maxlimit - field.value.length;
}

Мой UserControl имеет небольшой код:

<script type="text/javascript" language="javascript">
    if (typeof contentPageLoad == 'function') {
        var outputField = $("[id$='lblCharacterCount']");
    }
</script> 


 <asp:TextBox ID="txtMyTest" runat="server" Height="75px" CssClass="form-field full" TextMode="MultiLine" MaxLength="140"
            onkeyup="textCounter(this, outputField, 140);" onkeydown="textCounter(this, outputField, 140);" ></asp:TextBox>

<asp:Label ID="lblCharacterCount" runat="server"></asp:Label>

outputField всегда равно нулю, когда пытается выполнить функцию.Я попытался добавить его (скрипт на UserControl) в блок скриптов в UserControl PageLoad, PreRender и PreInit.Кажется, ничего не работает.

ОБНОВЛЕНИЕ:

Мне удалось получить UserControl Javascript, работающий без UpdatePanel.Это была проблема, UserControl был в UpdatePanel.Я отказался от использования Usercontrol в панели обновления с JS, если кто-то не может дать какой-либо совет.

1 Ответ

0 голосов
/ 13 февраля 2011

Попробуйте изменить селектор на что-то вроде этого:

var outputField = $("#<% lblCharacterCount.ClientId %>");

Идентификатор, который вы устанавливаете в элементе управления, обычно не является идентификатором, который присваивается ему в генерируемом HTML.Используя свойство ClientId, вы получите HTML ID.

Конечно, я давно не пользовался ASP.NET, поэтому этот ответ может быть бесполезным.

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