簡體   English   中英

在VB.net中修改控件收集錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM