[英]Modifying controls collection error in VB.net
我需要在頁面加載上執行一個使用存儲的會話變量的函數。 我已經在我的<body>
標簽中添加了以下內容。
<body onload="doSomething(event,'<%= Session("StartTime") %>')>
這確實有效。 但是,當我嘗試向控件集合中添加控件時,這在其他地方引起了問題:
dim myPanel= New Panel
...
Me.Controls.Add(myPanel)
它在此階段炸毀,並產生以下錯誤:
“無法修改控件集合,因為控件包含代碼塊(即<%...%>)。”
我嘗試過使用<%#
... %>
而不是<%=
..。 .%>
,但這可以防止找到會話變量-它只是空白。
要么,
<body onload="doSomething(event,'<asp:PlaceHolder id="starttimePlaceholder" runat="server"</asp:Placeholder>')>
然后,在服務器端進行填充:
starttimePlaceholder.Controls.Add(New LiteralControl(Session("StartTime")))
我找到了可行的解決方案
我強迫我的腳本在服務器控件上運行。
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.