控制項 Render 呼叫 base.Render,內部再呼叫 RenderContents 輸出內容。覆寫此方法可完全掌控 HTML 輸出,是 TreeView 控制項核心邏輯所在。
if (base.Page.Site != null && base.Page.Site.DesignMode) {
// 設計模式:僅輸出控制項中繼資訊
Type t = this.GetType();
writer.WriteLine("" + this.ID + "");
writer.WriteLine("
Type=" + t.FullName);
writer.WriteLine("
Version=" + t.Assembly.FullName);
writer.WriteLine("
GenerateAtServer=" + this.GenerateAtServer);
writer.WriteLine("
DynamicLoadChildNodes=" + this.DynamicLoadChildNodes);
writer.WriteLine("
AutoScroll=" + this.AutoScroll);
writer.WriteLine("
IndentXML=" + this.IndentXML);
writer.WriteLine("
Yfyuan release at 2008-02-19");
return;
}
DesignMode=true 表示在 VS.NET 設計器中,不輸出實際樹狀結構,避免設計時效能負擔。DynamicLoadChildNodes 時,輸出支援客戶端動態載入的 HTML/JS 區塊。RegisterStartupScript 在 </form> 前輸出,確保 DOM 就緒。在Render/RenderContents中呼叫RegisterClientScriptBlock無效,因<form>已開始輸出,無法插入<head>區塊。腳本註冊應在OnLoad或Load事件完成。