我正在从代码后面创建一个新的文字控件,我将标准的html添加到其中工作正常。我尝试将<%= SomeDiv.ClientID %>
添加到这个文字控件中,但它完全打印到源代码后面的代码中。
代码背后:
new LiteralControl("<div id='" + paneID.Replace(" ", "") + "_Expand' runat='server' onclick='ChangePanelHeader('<%= " + paneID.Replace(" ", "") + "_Expand.ClientID %>'" + ", " + "'<%= " + paneID.Replace(" ", "") + "_cpe.ClientID %>')' class='rhsCollapsiblePanelsHeader'>" + paneTitle + "<br /><br /></div>" + paneContent)
在浏览器源中加载一次页面:
<div id='Tellafriend_Expand' runat='server' onclick='ChangePanelHeader('<%= Tellafriend_Expand.ClientID %>', '<%= Tellafriend_cpe.ClientID %>')' 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)
答案 0 :(得分:2)
(在我最初的“嗯?”之后)我注意到你正在获取服务器端代码以输出未包含在引号中的id。在JS中,这些ID可能需要被视为字符串,所以试试这个:
ChangePanelHeader("<%= Tellafriend_Expand.ClientID %>", ...);
// add quotes ----^----------------------------------^
(如果不是,那么,我会等待你评论中承诺的重写问题。)