Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
265
Moving from UltraWebGrid to WebDataGrid
posted

Greetings,

I am trying to move from using UWG to WDG for our default grid (version 2011.1 until we can switch everything from UWG). Previously we created a custom control to make it even easier to add a grid to a page, and I am trying to recreate this functionality with WDG. Below is the code for the UWG version, can anyone help me figure out the WDG version?

 

	public class DDG : UltraWebGridIPostBackEventHandler
	{
		//public DDG()
		//{
		//    gridInit();
		//}
 
		protected override void OnInit(EventArgs e)
		{
			base.OnInit(e);
			gridInit();
			InitializeRow += new InitializeRowEventHandler(DDG_InitializeRow);
		}
 
 
		private void gridInit()
		{
			DisplayLayout.StationaryMargins = StationaryMargins.Header;
			//DisplayLayout.AllowSortingDefault = AllowSorting.OnClient;
			DisplayLayout.RowHeightDefault = Unit.Pixel(20);
			DisplayLayout.RowSizingDefault = AllowSizing.Free;
			DisplayLayout.SelectTypeRowDefault = SelectType.Single;
			//DisplayLayout.HeaderClickActionDefault = HeaderClickAction.SortSingle;
			DisplayLayout.BorderCollapseDefault = BorderCollapse.Separate;
			DisplayLayout.AllowColSizingDefault = AllowSizing.Free;
			DisplayLayout.CellPaddingDefault = 1;
			DisplayLayout.RowSelectorsDefault = RowSelectors.No;
			DisplayLayout.TableLayout = TableLayout.Fixed;
			DisplayLayout.CellClickActionDefault = CellClickAction.RowSelect;
			DisplayLayout.HeaderStyleDefault.Font.Size = FontUnit.Point(8);
			DisplayLayout.HeaderStyleDefault.Font.Bold = true;
			DisplayLayout.HeaderStyleDefault.BorderColor = Color.Black;
			DisplayLayout.HeaderStyleDefault.BorderStyle = BorderStyle.Solid;
			DisplayLayout.HeaderStyleDefault.ForeColor = Color.FromArgb(00153);
			DisplayLayout.HeaderStyleDefault.BackColor = Color.FromArgb(255200145);
			DisplayLayout.HeaderStyleDefault.BorderDetails.ColorTop = Color.White;
			DisplayLayout.HeaderStyleDefault.BorderDetails.ColorLeft = Color.White;
			DisplayLayout.HeaderStyleDefault.BorderDetails.WidthLeft = Unit.Pixel(1);
			DisplayLayout.HeaderStyleDefault.BorderDetails.WidthTop = Unit.Pixel(1);
			DisplayLayout.RowSelectorStyleDefault.BorderStyle = BorderStyle.Solid;
			// this.DisplayLayout.FrameStyle.Width=Unit.Percentage(99);
			DisplayLayout.FrameStyle.Cursor = Cursors.Default;
			DisplayLayout.FrameStyle.BorderWidth = Unit.Pixel(3);
			DisplayLayout.FrameStyle.Font.Size = FontUnit.Point(8);
			DisplayLayout.FrameStyle.Font.Names = new string[] { "Verdana" };
			DisplayLayout.FrameStyle.BorderColor = Color.FromArgb(00153);
			DisplayLayout.FrameStyle.BorderStyle = BorderStyle.Solid;
			DisplayLayout.FrameStyle.ForeColor = Color.White;
			DisplayLayout.FrameStyle.BackColor = Color.FromArgb(00153);
			// this.DisplayLayout.FrameStyle.Height=Unit.Pixel(400);
			DisplayLayout.FooterStyleDefault.BorderWidth = Unit.Pixel(1);
			DisplayLayout.FooterStyleDefault.BorderStyle = BorderStyle.Solid;
			DisplayLayout.FooterStyleDefault.BackColor = Color.LightGray;
			DisplayLayout.FooterStyleDefault.BorderDetails.ColorTop = Color.White;
			DisplayLayout.FooterStyleDefault.BorderDetails.ColorLeft = Color.White;
			DisplayLayout.FooterStyleDefault.BorderDetails.WidthLeft = Unit.Pixel(1);
			DisplayLayout.FooterStyleDefault.BorderDetails.WidthTop = Unit.Pixel(1);
			DisplayLayout.ActivationObject.BorderStyle = BorderStyle.Dotted;
			DisplayLayout.SelectedRowStyleDefault.ForeColor = Color.Black;
			DisplayLayout.SelectedRowStyleDefault.Font.Bold = true;
			DisplayLayout.RowAlternateStyleDefault.BackColor = Color.FromArgb(255227198);
			DisplayLayout.RowStyleDefault.BorderWidth = Unit.Pixel(1);
			DisplayLayout.RowStyleDefault.BorderColor = Color.Gray;
			DisplayLayout.RowStyleDefault.BorderStyle = BorderStyle.Solid;
			DisplayLayout.RowStyleDefault.Font.Size = FontUnit.Point(8);
			DisplayLayout.RowStyleDefault.ForeColor = Color.Black;
			DisplayLayout.RowStyleDefault.BackColor = Color.White;
			DisplayLayout.RowStyleDefault.Padding.Left = Unit.Pixel(3);
			DisplayLayout.RowStyleDefault.BorderDetails.ColorTop = Color.Gray;
			DisplayLayout.RowStyleDefault.BorderDetails.ColorLeft = Color.Gray;
			DisplayLayout.RowStyleDefault.BorderDetails.WidthTop = Unit.Pixel(0);
			DisplayLayout.RowStyleDefault.BorderDetails.WidthLeft = Unit.Pixel(0);
		}
 
		public override void OnInitializeLayout(UltraGridLayout layout)
		{
			base.OnInitializeLayout(layout);
			if (ShowActionColumn && ActionFields.Count > 0 && !DisplayLayout.Bands[0].Columns.Exists("actions"))
			{
				DisplayLayout.Bands[0].Columns.Insert(0"actions");
				DisplayLayout.Bands[0].Columns.FromKey("actions").HeaderText = "Actions";
			}
		}
 
		/// <summary>
		/// Array of strings to identify the key fields for this grid.  these fields are returned through DDGRowAction event to identify which row was acted upon
		/// </summary>
		public string[] DataKeyFields
		{
			get { return (string[])ViewState["DDGDataKeyField"]; }
			set { ViewState["DDGDataKeyField"= value; }
		}
 
		public bool ShowActionColumn
		{
			get
			{
				if (ViewState["ShowActionColumn"== nullViewState["ShowActionColumn"= true;
				return (bool)ViewState["ShowActionColumn"];
			}
			set { ViewState["ShowActionColumn"= value; }
		}
 
		public bool UseActionBrackets
		{
			get
			{
				if (ViewState["UseActionBrackets"== nullViewState["UseActionBrackets"= true;
				return (bool)ViewState["UseActionBrackets"];
			}
			set { ViewState["UseActionBrackets"= value; }
		}
 
 
		private ArrayList _af = new ArrayList();
 
		/// <summary>
		/// List of actions that can be taken on each row.  these words are shown in the grid, and made clickable.  when clicked, they fire the
		/// DDGRowAction event, returning the ActionField word, along with the key for that row
		/// </summary>
		public ArrayList ActionFields
		{
			get { return _af; }
			set { _af = value; }
		}
 
		public delegate void DDGRowActionEventHandler(object senderDDGEventArgs e);
 
		public delegate void DDGRowInitEventHandler(object senderDDGRowInitArgs e);
 
		/// <summary>
		/// contains information on the Row Action that occured.  
		/// "itemIDs" is an array of values that make up the key for the row that was acted upon.  values are in same order as DataKeyFields array
		/// "action" is the ActionField word that was clicked by the user
		/// </summary>
		public class DDGEventArgs : EventArgs
		{
			private string[] _itemIDs;
 
			public string[] itemIDs
			{
				get { return _itemIDs; }
				set { _itemIDs = value; }
			}
 
			private string _action;
 
			public string action
			{
				get { return _action; }
				set { _action = value; }
			}
		}
 
		public class DDGRowInitArgs : EventArgs
		{
			public bool enabled = true;
			public UltraGridRow row;
			public object data;
			public string action;
			public string column = "actions";
			public string link;
		}
 
		/// <summary>
		/// Fires when the user clicks on an ActionField in the action column of the grid
		/// </summary>
		public event DDGRowActionEventHandler OnDDGRowAction;
 
		public event DDGRowInitEventHandler OnDDGRowInit;
 
		private string getKeyString(UltraGridRow row)
		{
			string ret = "";
			foreach (string fieldname in DataKeyFields)
				ret += "|" + Convert.ToString(row.Cells.FromKey(fieldname).Value);
			return ret.TrimStart('|');
		}
 
		// private string removeHTML(string cleanThis)
		// {
		// System.Text.RegularExpressions.Regex rex = new System.Text.RegularExpressions.Regex("<[^>]*>");
		// return rex.Replace(cleanThis," ");
		// }
 
 
		public new void RaisePostBackEvent(string eventArgument)
		{
			base.RaisePostBackEvent(eventArgument);
 
			string[] args = eventArgument.Split('|');
			string eventname = args[0];
			DDGEventArgs e = new DDGEventArgs();
			e.itemIDs = new string[args.Length - 1];
			for (int i = 1i < args.Lengthi++)
				e.itemIDs[i - 1= args[i];
			e.action = eventname;
			if (OnDDGRowAction != nullOnDDGRowAction(thise);
		}
 
		private void DDG_InitializeRow(object senderRowEventArgs e)
		{
			DDGRowInitArgs ex;
			string field;
			string key;
 
			for (int i = 0i < ActionFields.Counti++)
			{
				field = (string)ActionFields[i];
 
				ex = new DDGRowInitArgs();
				ex.row = e.Row;
				ex.data = e.Data;
				ex.action = field;
				ex.link = field;
 
				if (OnDDGRowInit != nullOnDDGRowInit(thisex);
				key = getKeyString(e.Row);
				if (i == 0e.Row.Cells.FromKey(ex.column).Text = " ";
 
				if (ex.enabled)
					e.Row.Cells.FromKey(ex.column).Text += (UseActionBrackets ? "[" : ""+ "<a href=\"BLOCKED SCRIPT" + Page.ClientScript.GetPostBackEventReference(thisex.action + "|" + key+ "\">" + ex.link + "</a>" + (UseActionBrackets ? "]" : ""+ "&nbsp;";
				else
					e.Row.Cells.FromKey(ex.column).Text += (UseActionBrackets ? "[" : ""+ "<span style=\"text-decoration:underline; color:gray;\">" + ex.link + "</span>" + (UseActionBrackets ? "]" : ""+ "&nbsp;";
			}
		}
	}
Parents Reply Children
No Data