private bool AdjustControlEnvironment(Control parent, bool forAdd) { if (ControlStateUrl.HandleResourceRequest()) { return(true); } if (parent.Page == null) //当多个控件放在同一页面上时,这一情形表明前面的控件已经处理了特定状态的显示,这里不用再处理 //当多个控件放在同一页面上时,特定状态必须由第一个控件来处理 { return(false); } string state = HttpContext.Current.Request["StatisticControlState"]; if (forAdd) { this.Width = Unit.Percentage(100.0); parent.Controls.Add(this); } return(false); }
/// <summary> /// 确保控件显示的上下文环境,使用界面设计器时,应调用此方法,因为控件的某些状态可能需要完整的 /// 页面来显示,控件需要对页面作相应处理,不使用界面设计器时用上一方法即可,它会自动调用此方 /// 法。此外,控件的客户端资源URL也需要借此处理。返回值表明是否继续构造界面,为真时应该终止后 /// 续的任何界面相关的操作(此时响应流已关闭)。 /// </summary> /// <param name="parent"></param> public bool EnsureControlEnvironment(Control parent) { if (ControlStateUrl.HandleResourceRequest()) { return(true); } if (parent.Page == null) { return(false); } string refScript = "<LINK href='" + ControlStateUrl.BuildResourceRequestUrl(cssUrl) + "' type='text/css' rel='stylesheet'>\r\n" + "<script language='javascript' src=" + ControlStateUrl.BuildResourceRequestUrl(scpUrl) + "></script>\r\n" + @" <script language='javascript'> function getTree(obj) { if(!obj.tree) { var treeObj=new TreeTable('',obj);" + " treeObj.rootImage='"+ rootImg + "';\r\n" + " treeObj.openImage='"+ openImg + "';\r\n" + " treeObj.closeImage='"+ closeImg + "';\r\n" + " treeObj.open2Image='"+ open2Img + "';\r\n" + " treeObj.close2Image='"+ close2Img + "';\r\n" + " treeObj.line='"+ lineImg + "';\r\n" + " treeObj.minus='"+ minusImg + "';\r\n" + " treeObj.plus='"+ plusImg + "';\r\n" + " treeObj.empty='"+ emptyImg + "';\r\n" + @" return treeObj; } return obj.tree; } </script> " ; parent.Page.RegisterClientScriptBlock("TreeTableClientScript", refScript); return(false); }