Слишком много символов в буквальном символе? - PullRequest
5 голосов
/ 27 октября 2011

Подскажите пожалуйста, что не так с этим кодом ???О том, как сойти с ума !!!

<asp:LinkButton ID="LinkButton1" OnClick="DivAc('griddiv')" Font-Size="Smaller"  runat="server" CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>

Ошибка: слишком много символов в буквальном символе ...: (

Ответы [ 3 ]

16 голосов
/ 27 октября 2011

Является ли DivAc('griddiv') функцией JavaScript?Затем вы должны использовать OnClientClick вместо OnClick.

OnClick зарезервировано для функций .NET.С OnClientClick вы генерируете OnClick-атрибут в HTML.

Это, вероятно, немного сбивает с толку.

Так вот, что вам нужно сделать:

<asp:LinkButton ID="LinkButton1" OnClientClick="DivAc('griddiv')" Font-Size="Smaller"  runat="server" CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>
13 голосов
/ 27 октября 2011

Непосредственная проблема заключается в том, что вы поместили строку (griddiv) в кавычки символа (одиночная кавычка в C # предназначена только для одного символа). Вам нужно написать что-то вроде OnClick="DivAc(\"griddiv\")"

НО

OnClick - это обработчик событий на стороне сервера, который принимает имя открытой или защищенной функции, которая принимает (object, EventArgs) и возвращает void. Так что это все равно не скомпилируется.

Где DivAc? В JavaScript? Если это так, вы хотите OnClientClick, и в этом случае вы можете оставить одинарные и двойные кавычки, как они есть.

0 голосов
/ 27 октября 2011

Я думаю, что ваша ошибка здесь:

CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>

Я думаю, что это должно быть:

CommandName='<%# Eval("harf").ToString().ToUpper()%'></asp:LinkButton>
...