Проблемы с синтаксисом Javascript - PullRequest
0 голосов
/ 28 февраля 2012

Я создаю новый буквальный элемент управления из кода позади, я добавляю в него стандартный HTML, который прекрасно работает.Я пытаюсь добавить <%= SomeDiv.ClientID %> в этот буквальный элемент управления, но он буквально печатает в исходный код именно то, что находится в коде позади.

Код позади:

new LiteralControl("<div id='" + paneID.Replace(" ", "") + "_Expand' runat='server' onclick='ChangePanelHeader(&#39;<%= " + paneID.Replace(" ", "") + "_Expand.ClientID %>&#39;" + ", " + "&#39;<%= " + paneID.Replace(" ", "") + "_cpe.ClientID %>&#39;)' class='rhsCollapsiblePanelsHeader'>" + paneTitle + "<br /><br /></div>" + paneContent)

В браузере Source, когда страница загружена:

<div id='Tellafriend_Expand' runat='server' onclick='ChangePanelHeader(&#39;<%= Tellafriend_Expand.ClientID %>&#39;, &#39;<%= Tellafriend_cpe.ClientID %>&#39;)' class='rhsCollapsiblePanelsHeader'>Tell a friend<br /><br /></div>

Требуемый результат:

<div id='Tellafriend_Expand' runat='server' onclick='ChangePanelHeader("MyTelAFriendID_Expand", "MyTelAFriendID_cpe") class='rhsCollapsiblePanelsHeader'>Tell a friend<br /><br /></div>

Синтаксическая ошибка Firefox:

syntax error
[Break On This Error]   

ChangePanelHeader(<%= Tellafriend_Expand.ClientID %>, <%= Tellafriend_cpe.Cli...

default.aspx (line 1, col 20)

1 Ответ

2 голосов
/ 28 февраля 2012

(после моего первоначального «Ха?») Я заметил, что вы получаете свой серверный код для вывода идентификаторов, которые не заключены в кавычки. В JS эти идентификаторы, вероятно, должны рассматриваться как строки, поэтому попробуйте следующее:

ChangePanelHeader("<%= Tellafriend_Expand.ClientID %>", ...);
// add quotes ----^----------------------------------^

(Если это не так, я подожду вопроса о переписывании, обещанного в вашем комментарии.)

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