Feature

Feature

WebBasePanel

原先的設計中,WebBasePanel 並不會保存使用者移動後的位置及展開與否等設定,
雖然這是既定的設計,不算是Bug,但使用起來就有點彆扭,所以我抽了點時間修改
這個控件,以下是變動的程式碼,在下載了新的pasp_aspnet_panel.js後,WebPanel
及WebTemplatePanel就擁有保存使用者移動的位置及展開等設定.

pasp_aspnet_panel.js
http://www.dreams.idv.tw/~code6421/Doc/pasp_aspnet_panel.js

WebBasePanel.cs

protected override void AddAttributesToRender(HtmlTextWriter writer)
{
 if(Page != null)
  Page.VerifyRenderingInServerForm(this);
 
 writer.AddAttribute(HtmlTextWriterAttribute.Type,"hidden");
 writer.AddAttribute(HtmlTextWriterAttribute.Name,this.ClientID+"_X");
 if(Page.Request.Params[this.ClientID+"_X"] != null)
  writer.AddAttribute("value",Page.Request.Params[this.ClientID+"_X"]);
 writer.RenderBeginTag(HtmlTextWriterTag.Input);
 writer.RenderEndTag();

 writer.AddAttribute(HtmlTextWriterAttribute.Name,this.ClientID+"_Y");
 writer.AddAttribute(HtmlTextWriterAttribute.Type,"hidden");
 if(Page.Request.Params[this.ClientID+"_Y"] != null)
  writer.AddAttribute("value",Page.Request.Params[this.ClientID+"_Y"]);
 writer.RenderBeginTag(HtmlTextWriterTag.Input);
 writer.RenderEndTag();

 writer.AddAttribute(HtmlTextWriterAttribute.Name,this.ClientID+"_DISPLAY");
 writer.AddAttribute(HtmlTextWriterAttribute.Type,"hidden");
 if(Page.Request.Params[this.ClientID+"_DISPLAY"] != null)
  writer.AddAttribute("value",Page.Request.Params[this.ClientID+"_DISPLAY"]);
 writer.RenderBeginTag(HtmlTextWriterTag.Input);
 writer.RenderEndTag();

 _defaultHeight = Height.ToString();
 if(Site == null)
  Height = Unit.Empty;   
 base.AddAttributesToRender (writer);
 writer.AddStyleAttribute("FILTER","alpha(opacity:100)");
}

public override void RenderBeginTag(HtmlTextWriter writer)
{
 string header = CreateHeader();

 base.RenderBeginTag (writer);
 writer.WriteLine(
  string.Format(BASE_BEGIN_HTML,
  this.ClientID,
  header,
  _defaultHeight,
  ColorTranslator.ToHtml(HeaderBackgroundColor),
  ColorTranslator.ToHtml(BorderColor),
  BorderWidth.ToString(),
  Enum.GetName(typeof(BorderStyle),BorderStyle),
  ColorTranslator.ToHtml(BackColor),
  this.ClientID+"_span",
  this.ClientID+"_arrow"                 
  )
  );
 writer.WriteLine(
           "<SCRIPT language='JavaScript'>var {0}_obj = new WebPanelObject(document.getElementById('{0}'),document.getElementById('{0}_X'),document.getElementById('{0}_Y'),document.getElementById('{0}_DISPLAY'),document.getElementById('{0}_arrow'),document.getElementById('{0}_span'));</script>",this.ClientID);
}

要多看勘誤表哦

 

posted on 2004-10-05 18:40  code6421  阅读(568)  评论(1)    收藏  举报

导航