.Net Listbox не будет компилироваться с обработчиком событий javascript? - PullRequest
0 голосов
/ 25 февраля 2011

Это должно быть самой простой вещью, но она не будет работать. У меня есть простой список asp.net и для события OnSelectedIndexChanged я хочу, чтобы запустить функцию JavaScript. Это работает для случаев, когда я устанавливаю ссылки для запуска той же функции, но не для этого конкретного элемента управления. Строка кода выглядит следующим образом:

<tr><td>
    <asp:ListBox ID="ListBox1" runat="server" Width="250" 
    Height="600" OnSelectedIndexChanged="javascript:selectedIndexChanged()">
    </asp:ListBox>
</td></tr>

Вот ошибки компиляции, которые я получаю:

c: \ .. \ ManufInfo.aspx (171,84): ошибка CS1026:) ожидается
c: \ .. \ ManufInfo.aspx (171,84): ошибка CS1002:; Ожидается
c: \ .. \ ManufInfo.aspx (171,84): ошибка CS1525: неверный термин выражения ':'
c: \ .. \ ManufInfo.aspx (171,84): ошибка CS1026:) ожидается
c: \ .. \ ManufInfo.aspx (171,84): ошибка CS1002:; ожидается
c: \ .. \ ManufInfo.aspx (171,84): ошибка CS1525: неверный термин выражения ':'
c: \ .. \ ManufInfo.aspx (171,85): ошибка CS1002:; ожидается
c: \ .. \ ManufInfo.aspx (171,85): ошибка CS1002:; Ожидается
c: \ .. \ ManufInfo.aspx (171,107): ошибка CS1002:; ожидается
c: \ .. \ ManufInfo.aspx (171,107): ошибка CS1525: недопустимое выражение ")"
c: \ .. \ ManufInfo.aspx (171,107): ошибка CS1002:; Ожидается
c: \ .. \ ManufInfo.aspx (171,107): ошибка CS1525: неверный термин выражения ')'

Что, черт возьми, происходит? ;) Вероятно, ошибка n00b, но я подумал, что подбираю jscript достаточно, чтобы понять, что должно работать ...

Спасибо всем, кто может указать мне правильное направление!

Ответы [ 4 ]

1 голос
/ 25 февраля 2011

OnSelectedIndexChanged на стороне сервера.Не будет запускать JavaScript, он будет ссылаться на метод codebehind.

1 голос
/ 25 февраля 2011

Значение, которое входит в атрибут OnSelectedIndexChanged, должно быть именем метода в выделенном коде (или рядом с кодом), который совпадает с подписью делегата EventHandler, который выполняется при обратной передаче.

SOE предоставила правильный способ добавить событие javascript onclick в ваш элемент управления.

1 голос
/ 25 февраля 2011

Этот атрибут предназначен для событий ASP.Net, а не для обработки событий на стороне клиента.

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

document.getElementById('<%=ListBox1.ClientID %>').onChange = function (){
    // your selectedIndexChanged logic goes here
};
1 голос
/ 25 февраля 2011

OnSelectedIndexChanged не предназначен для обработчиков JavaScript.Попробуйте это на page_load

ListBox1.Attributes.Add("onclick", "selectedIndexChanged()");
...