簡體   English   中英

防止呈現用戶控件

[英]Prevent rendering of user control

在我們的asp.net Webforms應用程序中,我們將用戶控件動態加載到占位符中。 為了保留回發之間的更改,我們的頁面生命周期比平時要復雜一些。 我們總是在pageInit中還原以前的控件結構,以便成功加載我們的viewstate。 只有這樣,我們才清除占位符並將新控件加載到其中。

不幸的是,這對舊用戶控件和新用戶控件都意味着整個生命周期,包括對舊模塊的整個.ascx標記文件的服務器端處理。

現在我的問題是:是否有可能最小化舊模塊的服務器端處理,因為它永遠不會發送回客戶端(即完全不需要服務器端渲染)。 我理想地希望實現的是一種“輕量級”的用戶控件加載,當它的唯一目的是還原vewstate信息而不會到達客戶端時。

該練習的目標是性能優化。

任何提示,想法或建議表示贊賞!

通過簡單地檢查控件是否可見,已經解決了在動態添加控件的webcontrol生命周期事件中運行的代碼( http://msdn.microsoft.com/zh-cn/library/system.web.ui.control.visible.aspx) -

protected void Page_Load(object sender, EventArgs e)
{
    if (this.Visible) 
    {
       //Your code here
    }
}

如果您有不是頁面生命周期事件觸發的任何方法,而必須由用戶操作觸發的方法,例如-

protected void Button1_Click(object sender, EventArgs e)
{
   //Do something
}

可以放心地保持原樣,直到將控件添加到頁面並觸發操作后,方法代碼才會運行。

盡管可見性檢查並不特別優雅,但它可能是處理動態加載的控件上的自動關聯事件的最佳方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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