使用者控制項中的 AjaxToolkit SliderExtender 故障排除
為使用者控制項新增 AjaxToolkit SliderExtender 有時會導致錯誤:「無法修改 Controls 集合,因為該控制項包含程式碼區塊。」當伺服器端程式碼區塊存在於使用者控制項的標籤中時,通常會發生這種情況。
解:
解決方案涉及重構伺服器端程式碼。 不要使用 Response.Write
程式碼區塊,而是實作資料綁定表達式。 例如,將 Response.Write()
程式碼替換為等效的資料綁定。 這可以防止程式碼在控制項的生命週期期間被解釋為伺服器端程式碼,從而允許修改 Controls
集合。
這是一個簡化的說明:(注意:原始版本中提供的 <head>
標記範例不完整且缺乏上下文。更相關的範例將在使用者控制項的標記中顯示 Response.Write
語句。)
假設您的使用者控制項的 Response.Write
檔案中有這樣的 .ascx
語句:
<code class="language-C#"><% Response.Write(someVariable); %></code>
將其替換為資料綁定表達式:
<code class="language-asp.net"><%= someVariable %></code>
最後,將以下程式碼加入母版頁的程式碼隱藏檔案 (.aspx.cs
) 中:
<code class="language-C#">protected void Page_Load(object sender, EventArgs e) { Page.Header.DataBind(); }</code>
此 DataBind()
呼叫可確保在修改 Controls
集合之前正確評估資料綁定表達式,從而解決錯誤並成功新增 SliderExtender。
以上是為什麼無法將 AjaxToolkit SliderExtender 添加到我的用戶控件,以及如何修復「無法修改控件集合」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!