`
xwf55xwf
  • 浏览: 13993 次
社区版块
存档分类
最新评论

基于ASP.NET的JQueryUI控件开发(1) - JQueryScriptManager

 
阅读更多

  前面基本实现了ASP.NET MVC的 JQueryUI控件,现在准备写一套ASP.NET的JQueryUI控件开发,
  今天先写一个JQueryScriptManager的实现.(基于ASP.NET MVC的基础上进行的开发,最终写成的控件即可以应用于ASP.NET也可以应用于ASP.NET MVC).
  先上图:
  
  三个引入使用的是Bool类型属性,
  皮肤使用枚举类型,此类型在前面已定义: 一、实现 控件设计时显示JQuery Script Manager -htt://www.hahaman.cn效果 即可实现,
  二、设置功能实现:
  首先需要实现JQuery Script Manager 类中的属性  //属性定义   
  public bool JQueryJs { get; set; }   
  public bool JQueryUIJs { get; set; }   
  public JQSkin Skins { get; set; }   
  public bool JQueryLngZh_CN { get; set; }   
  //初始化   
  public JQueryManager()   
  {   
  this.JQueryJs = true;   
  this.JQueryUIJs = true;   
  this.JQueryLngZh_CN = true;   
  this.Skins = JQSkin.smoothness;   
  }      
  //加载处理   
  protected override void OnLoad(EventArgs e)   
  {   
  if (JQueryJs)   
  this.Page.ClientScript.RegisterClientScriptInclude("jquery", Page.ClientScript.GetWebResourceUrl(typeof(JQueryUIExt), "Hahaman.Mvc.UI.jquery-1.4.2.min.js"));   
  if (JQueryUIJs)   
  {   
  this.Page.ClientScript.RegisterClientScriptInclude("jqueryui", Page.ClientScript.GetWebResourceUrl(typeof(JQueryUIExt), "Hahaman.Mvc.UI.jquery-ui-1.8.2.custom.min.js"));   
  string skin = Skins.ToString();   
  Literal lit = new Literal();   
  lit.Text = "/nskin + ".jquery-ui-1.8.2.custom.css") + "/" rel=/"stylesheet/" type=/"text/css/" />";   
  this.Page.Header.Controls.Add(lit);   
  }   
  if (JQueryLngZh_CN)   
  this.Page.ClientScript.RegisterClientScriptInclude("jquerylng", Page.ClientScript.GetWebResourceUrl(typeof(JQueryUIExt), "Hahaman.Mvc.UI.jquery.ui.datepicker-zh-CN.js"));   
  }  
  实现设计类:JQeryManagerDesigner  public class JQeryManagerDesigner : ControlDesigner,IComponent   
  {   
  public JQeryManagerDesigner()   
  : base()        {   
  }   
  public override DesignerActionListCollection ActionLists   
  {   
  get  
  {   
  DesignerActionListCollection actionList    
  = new DesignerActionListCollection();   
  actionList.Add(new JQueryManagerActionList(base.Component));   
  return actionList;   
  }   
  }    
  #region IComponent 成员      
  public event EventHandler Disposed;   
  public ISite Site   
  {   
  get  
  {   
  throw new NotImplementedException();   
  }   
  set  
  {   
  throw new NotImplementedException();   
  }   
  }    
  #endregion    }  
  ActionList类:JQueryManagerActionList public class JQueryManagerActionList : DesignerActionList   
  {   
  IComponent _parent;   
  public JQueryManagerActionList(IComponent c)   
  : base(c)        {   
  _parent = c;   
  }   
  private DesignerActionItemCollection items;   
  public override DesignerActionItemCollection GetSortedActionItems()   
  {   
  if (items == null)   
  {   
  items = new DesignerActionItemCollection();   
  items.Add(new DesignerActionHeaderItem("JQuery Script设置"));   
  items.Add(new DesignerActionPropertyItem("JQueryJs", "引入JQuery.js"));   
  items.Add(new DesignerActionPropertyItem("JQueryUIJs", "引入JQuery.UI.js"));   
  items.Add(new DesignerActionPropertyItem("JQueryLngZh_CN","引入JQuery中文语言包"));   
  items.Add(new DesignerActionPropertyItem("Skins", "皮肤"));   
  }   
  return items;   
  }      
  private JQueryManager JQueryManager   
  {   
  get  
  {   
  return (JQueryManager)_parent;   
  }   
  }   
  public bool JQueryJs {   
  get  
  {   
  return JQueryManager.JQueryJs;   
  }   
  set  
  {   
  PropertyDescriptor desc   
  = TypeDescriptor.GetProperties(base.Component)["JQueryJs"];   
  desc.SetValue(base.Component, value);   
  }   
  }   
  public bool JQueryUIJs {   
  get  
  {   
  return JQueryManager.JQueryUIJs;   
  }   
  set  
  {   
  PropertyDescriptor desc    
  = TypeDescriptor.GetProperties(base.Component)["JQueryUIJs"];   
  desc.SetValue(base.Component, value);   
  }   
  }   
  public JQSkin Skins {   
  get  
  {   
  return JQueryManager.Skins;   
  }   
  set  
  {   
  PropertyDescriptor desc    
  = TypeDescriptor.GetProperties(base.Component)["Skins"];   
  desc.SetValue(base.Component, value);   
  }   
  }      
  public bool JQueryLngZh_CN {   
  get  
  {   
  return JQueryManager.JQueryLngZh_CN;   
  }   
  set  
  {   
  PropertyDescriptor desc    
  = TypeDescriptor.GetProperties(base.Component)["JQueryLngZh_CN"];   
  desc.SetValue(base.Component, value);   
  }   
  }       }   
  最后需要对JQuery Script Manager 类进行声明. 即可以实现!
  待续....
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics