基于ASP.NET的JQueryUI控件开发(3) - JQDialog

先上图:

思路:

JavaScript JQuery Dialog 代码如下:

Code:
  1. $("#dialog").dialog({   
  2. autoOpen: false,   
  3. show: 'blind',   
  4. hide: 'explode',   
  5. modal: true,   
  6. resizable: false   
  7. });   

代码封装:

Code:
  1. [Designer("System.Web.UI.Design.WebControls.MultiViewDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]   
  2. public class JQDialog:Panel   
  3. {   
  4.     bool modal = false;   
  5.     //是否是模态   
  6.     public bool Modal   
  7.     {   
  8.         get { return modal; }   
  9.         set { modal = value; }   
  10.     }   
  11.   
  12.     bool vis=false;   
  13.     //是否显示   
  14.     public new  bool Visible   
  15.     {   
  16.         get  
  17.         {   
  18.             return vis;   
  19.         }   
  20.         set  
  21.         {   
  22.             vis = value;   
  23.         }   
  24.     }   
  25.      
  26.     private string clientFunction="";   
  27.     //客户端函数   
  28.     public string ClientFunction   
  29.     {   
  30.         get { return clientFunction; }   
  31.         set { clientFunction = value; }   
  32.     }   
  33.     private bool showOnStart = false;   
  34.     //开始启动   
  35.     public bool ShowOnStart   
  36.     {   
  37.         get { return showOnStart; }   
  38.         set { showOnStart = value; }   
  39.     }   
  40.     //渲染之前   
  41.     protected override void OnPreRender(EventArgs e)   
  42.     {   
  43.            
  44.         base.Visible = true;   
  45.         if (!vis)   
  46.             this.Style.Add("display""none");   
  47.         base.OnPreRender(e);   
  48.     }   
  49.     public override void RenderEndTag(System.Web.UI.HtmlTextWriter writer)   
  50.     {   
  51.         base.RenderEndTag(writer);   
  52.         string config = "";   
  53.         if (showEffect != Effect.None)   
  54.         {   
  55.             config += "show:'"+showEffect.ToString().ToLower()+"',";   
  56.         }   
  57.         if (hideEffect != Effect.None)   
  58.         {   
  59.             config += "hide:'" + hideEffect.ToString().ToLower() + "',";   
  60.         }   
  61.         if (!this.Width.IsEmpty)   
  62.         {   
  63.             config += "width:'" + Width.Value + "',";   
  64.         }   
  65.         if (!this.Height.IsEmpty)   
  66.         {   
  67.             config += "height:'" + Height.Value + "',";   
  68.         }   
  69.         config += "modal:" + modal.ToString().ToLower() + ",";   
  70.         if (config.Length > 0)   
  71.         {   
  72.             config = config.Substring(0, config.Length - 1);   
  73.             config = "{" + config + "}";   
  74.         }   
  75.         if(!string.IsNullOrEmpty(clientFunction))   
  76.             writer.WriteLine("<script>function "+clientFunction+"(){$('#" + this.ClientID + "').dialog("+config+");}</script>");   
  77.         if(showOnStart)   
  78.             writer.WriteLine("<script>$(function(){$('#"+this.ClientID+"').dialog("+config+");});</script>");   
  79.     }   
  80.   
  81.     private Effect showEffect=Effect.None;   
  82.     //显示时动画   
  83.     public Effect ShowEffect   
  84.     {   
  85.         get { return showEffect; }   
  86.         set { showEffect = value; }   
  87.     }   
  88.     private Effect hideEffect=Effect.None;   
  89.     //关闭时动画   
  90.     public Effect HideEffect   
  91.     {   
  92.         get { return hideEffect; }   
  93.         set { hideEffect = value; }   
  94.     }   
  95. }   
  96. //动画   
  97. public enum Effect   
  98. {   
  99.     None,   
  100.     Blind,   
  101.     Bounce,   
  102.     Clip,   
  103.     Drop,   
  104.     Explode,   
  105.     Fold,   
  106.     Highlight,   
  107.     Puff,   
  108.     Pulsate,   
  109.     Scale,   
  110.     Shake,   
  111.     Size,   
  112.     Slide   
  113. }   

ASP.NET页面代码:

Code:
  1. <cc1:JQDialog ID="JQDialog1" runat="server" ClientFunction="showdlg1"    
  2.     HideEffect="Blind" Modal="True" ShowEffect="Scale" ToolTip="我的测试一" >               
  3.     haha!   
  4. </cc1:JQDialog>  

生成客户端代码:

Code:
  1.         <div id="JQDialog1" title="我的测试一" style="display:none;">  
  2.        
  3.             haha!   
  4.            
  5. </div><script>function showdlg1(){$('#JQDialog1').dialog({show:'scale',hide:'blind',modal:true});}</script>  

哈哈完工,待续..... 

你可能感兴趣的:(基于ASP.NET的JQueryUI控件开发(3) - JQDialog)