D:/Projects/Anthem/Anthem/DataGrid.cs

00001 using System;
00002 using System.ComponentModel;
00003 using System.Drawing;
00004 using System.Web.UI;
00005 using ASP = System.Web.UI.WebControls;
00006 
00007 namespace Anthem
00008 {
00012     [ToolboxBitmap(typeof(ASP.DataGrid))]
00013     public class DataGrid : ASP.DataGrid, IUpdatableControl, ICallBackContainerControl
00014     {
00015         #region Unique Anthem control code
00016 
00021         protected override void OnCancelCommand(System.Web.UI.WebControls.DataGridCommandEventArgs e)
00022         {
00023             base.OnCancelCommand(e);
00024             this.UpdateAfterCallBack = true;
00025         }
00026 
00031         protected override void OnDeleteCommand(System.Web.UI.WebControls.DataGridCommandEventArgs e)
00032         {
00033             base.OnDeleteCommand(e);
00034             this.UpdateAfterCallBack = true;
00035         }
00036 
00041         protected override void OnEditCommand(System.Web.UI.WebControls.DataGridCommandEventArgs e)
00042         {
00043             base.OnEditCommand(e);
00044             this.UpdateAfterCallBack = true;
00045         }
00046 
00051         protected override void OnItemCommand(System.Web.UI.WebControls.DataGridCommandEventArgs e)
00052         {
00053             base.OnItemCommand(e);
00054             this.UpdateAfterCallBack = true;
00055         }
00056 
00061         protected override void OnPageIndexChanged(System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
00062         {
00063             base.OnPageIndexChanged(e);
00064             this.UpdateAfterCallBack = true;
00065         }
00066 
00071         protected override void OnSelectedIndexChanged(EventArgs e)
00072         {
00073             base.OnSelectedIndexChanged(e);
00074             this.UpdateAfterCallBack = true;
00075         }
00076 
00081         protected override void OnSortCommand(System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
00082         {
00083             base.OnSortCommand(e);
00084             this.UpdateAfterCallBack = true;
00085         }
00086 
00091         protected override void OnUpdateCommand(System.Web.UI.WebControls.DataGridCommandEventArgs e)
00092         {
00093             base.OnUpdateCommand(e);
00094             this.UpdateAfterCallBack = true;
00095         }
00096 
00097         private const string parentTagName = "div";
00102         protected override void Render(HtmlTextWriter writer)
00103         {
00104 #if !V2
00105             bool DesignMode = this.Context == null;
00106 #endif
00107             if (EnableCallBack && AddCallBacks)
00108                 Anthem.Manager.AddCallBacks(this,
00109                     EnabledDuringCallBack,
00110                     TextDuringCallBack,
00111                     PreCallBackFunction,
00112                     PostCallBackFunction,
00113                     CallBackCancelledFunction);
00114 
00115             if (!DesignMode)
00116             {
00117                 Anthem.Manager.WriteBeginControlMarker(writer, parentTagName, this);
00118             }
00119             if (Visible)
00120             {
00121                 base.Render(writer);
00122             }
00123             if (!DesignMode)
00124             {
00125                 Anthem.Manager.WriteEndControlMarker(writer, parentTagName, this);
00126             }
00127         }
00128 
00129         #endregion
00130 
00131         #region ICallBackControl implementation
00132 
00137         [Category("Anthem")]
00138         [DefaultValue("")]
00139         [Description("The javascript function to call on the client if the callback is cancelled.")]
00140         public virtual string CallBackCancelledFunction
00141         {
00142             get
00143             {
00144                 string text = (string)ViewState["CallBackCancelledFunction"];
00145                 if (text == null)
00146                     return string.Empty;
00147                 else
00148                     return text;
00149             }
00150             set
00151             {
00152                 ViewState["CallBackCancelledFunction"] = value;
00153             }
00154         }
00155 
00163         [Category("Anthem")]
00164         [DefaultValue(true)]
00165         [Description("True if this control uses callbacks instead of postbacks to post data to the server.")]
00166         public virtual bool EnableCallBack
00167         {
00168             get
00169             {
00170                 object obj = this.ViewState["EnableCallBack"];
00171                 if (obj == null)
00172                     return true;
00173                 else
00174                     return (bool)obj;
00175             }
00176             set
00177             {
00178                 ViewState["EnableCallBack"] = value;
00179             }
00180         }
00181 
00190         [Category("Anthem")]
00191         [DefaultValue(true)]
00192         [Description("True if this control is enabled on the client during callbacks.")]
00193         public virtual bool EnabledDuringCallBack
00194         {
00195             get
00196             {
00197                 object obj = this.ViewState["EnabledDuringCallBack"];
00198                 if (obj == null)
00199                     return true;
00200                 else
00201                     return (bool)obj;
00202             }
00203             set
00204             {
00205                 ViewState["EnabledDuringCallBack"] = value;
00206             }
00207         }
00208 
00209 
00227         [Category("Anthem")]
00228         [DefaultValue("")]
00229         [Description("The javascript function to call on the client after the callback response is received.")]
00230         public virtual string PostCallBackFunction
00231         {
00232             get
00233             {
00234                 string text = (string)this.ViewState["PostCallBackFunction"];
00235                 if (text == null)
00236                 {
00237                     return string.Empty;
00238                 }
00239                 return text;
00240             }
00241             set
00242             {
00243                 ViewState["PostCallBackFunction"] = value;
00244             }
00245         }
00246 
00252         [Category("Anthem")]
00253         [DefaultValue("")]
00254         [Description("The javascript function to call on the client before the callback is made.")]
00255         public virtual string PreCallBackFunction
00256         {
00257             get
00258             {
00259                 string text = (string)this.ViewState["PreCallBackFunction"];
00260                 if (text == null)
00261                 {
00262                     return string.Empty;
00263                 }
00264                 return text;
00265             }
00266             set
00267             {
00268                 ViewState["PreCallBackFunction"] = value;
00269             }
00270         }
00271 
00280         [Category("Anthem")]
00281         [DefaultValue("")]
00282         [Description("The text to display during the callback.")]
00283         public virtual string TextDuringCallBack
00284         {
00285             get
00286             {
00287                 string text = (string)this.ViewState["TextDuringCallBack"];
00288                 if (text == null)
00289                 {
00290                     return string.Empty;
00291                 }
00292                 return text;
00293             }
00294             set
00295             {
00296                 ViewState["TextDuringCallBack"] = value;
00297             }
00298         }
00299 
00300         #endregion
00301 
00302         #region ICallBackContainerControl implementation
00303 
00315         [Category("Anthem")]
00316         [DefaultValue(true)]
00317         [Description("True if this control should convert child control postbacks into callbacks.")]
00318         public virtual bool AddCallBacks
00319         {
00320             get
00321             {
00322                 object obj = this.ViewState["AddCallBacks"];
00323                 if (obj == null)
00324                     return true;
00325                 else
00326                     return (bool)obj;
00327             }
00328             set
00329             {
00330                 ViewState["AddCallBacks"] = value;
00331             }
00332         }
00333 
00334         #endregion
00335 
00336         #region IUpdatableControl implementation
00337 
00351         [Category("Anthem")]
00352         [DefaultValue(false)]
00353         [Description("True if this control should be updated after each callback.")]
00354         public virtual bool AutoUpdateAfterCallBack
00355         {
00356             get
00357             {
00358                 object obj = this.ViewState["AutoUpdateAfterCallBack"];
00359                 if (obj == null)
00360                     return false;
00361                 else
00362                     return (bool)obj;
00363             }
00364             set
00365             {
00366                 if (value) UpdateAfterCallBack = true;
00367                 ViewState["AutoUpdateAfterCallBack"] = value;
00368             }
00369         }
00370 
00371         private bool _updateAfterCallBack = false;
00372 
00387         [Browsable(false)]
00388         [DefaultValue(false)]
00389         public virtual bool UpdateAfterCallBack
00390         {
00391             get { return _updateAfterCallBack; }
00392             set { _updateAfterCallBack = value; }
00393         }
00394 
00395         #endregion
00396 
00397         #region Common Anthem control code
00398 
00404         protected override void OnLoad(EventArgs e)
00405         {
00406             base.OnLoad(e);
00407             Anthem.Manager.Register(this);
00408         }
00409 
00410 #if V2
00414         public override void RenderControl(HtmlTextWriter writer)
00415         {
00416             base.Visible = true;
00417             base.RenderControl(writer);
00418         }
00419 #endif
00420 
00428         public override bool Visible
00429         {
00430             get
00431             {
00432 #if !V2
00433                 bool DesignMode = this.Context == null;
00434 #endif
00435                 return Anthem.Manager.GetControlVisible(this, ViewState, DesignMode);
00436             }
00437             set { Anthem.Manager.SetControlVisible(ViewState, value); }
00438         }
00439 
00440         #endregion
00441     }
00442 }

Generated on Wed Mar 14 23:50:39 2007 for Anthem by  doxygen 1.5.1-p1