我需要在页面加载上执行一个函数,该函数使用存储的会话变量。我已将以下内容添加到我的<body>
代码中。
<body onload="doSomething(event,'<%= Session("StartTime") %>')>
这确实有效。但是,当我尝试将控件添加到我的控件集合时,它在其他地方引起了问题:
dim myPanel= New Panel
...
Me.Controls.Add(myPanel)
在此阶段爆炸,发出以下错误:
“控件集合不能 修改,因为控件包含 代码块(即&lt;%...%&gt;)。 “
我尝试过使用<%#
... %>
代替<%=
.. .%>
的建议,但这会阻止找到会话变量 - 它是只是空白。
答案 0 :(得分:1)
或者,
<body onload="doSomething(event,'<asp:PlaceHolder id="starttimePlaceholder" runat="server"</asp:Placeholder>')>
然后,在服务器端填充它:
starttimePlaceholder.Controls.Add(New LiteralControl(Session("StartTime")))
答案 1 :(得分:0)
我强制我的脚本在服务器控件上运行。
<body ms_positioning="GridLayout" onload="callFromDiv(event);">
<div runat="server" ID="serverDiv">
<script type="text/javascript">
//This function must be placed in a separate div, since placing it directly
//in body tag prevents new controls being added later
function callFromDiv(e){
doSomething(e,'<%= Session("StartTime") %>')
}
</script>
</div>