Javascript语法问题

时间:2012-02-28 02:02:15

标签: javascript asp.net syntax

我正在从代码后面创建一个新的文字控件,我将标准的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)

在浏览器源中加载一次页面:

<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 个答案:

答案 0 :(得分:2)

(在我最初的“嗯?”之后)我注意到你正在获取服务器端代码以输出未包含在引号中的id。在JS中,这些ID可能需要被视为字符串,所以试试这个:

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

(如果不是,那么,我会等待你评论中承诺的重写问题。)

相关问题