private GridDefault BuildGridFromArrayDataSource(ArrayDataSource ads) { var result = new GridDefault(); OnRowHeadBinding(new RowHeadBindingEventArgs(result)); for (var i = 0; i < ads.Items.Length; i++) { OnRowDataBinding(new RowDataBindingEventArgs(i, ads.Items.GetValue(i), result)); } return(result); }
public GridDefault BuildGridFromDataSource() { var result = new GridDefault(); var dataSource = GridDataSource.GetDataSource(); if (dataSource is SqlDataSource) { result = BuildGridFromSqlDataSource(dataSource as SqlDataSource); } else if (dataSource is ArrayDataSource) { result = BuildGridFromArrayDataSource(dataSource as ArrayDataSource); } return(result); }
private GridDefault BuildGridFromSqlDataSource(SqlDataSource sds) { var result = new GridDefault(); OnRowHeadBinding(new RowHeadBindingEventArgs(result)); DataView dataView = null; if (!PagingDisabled) { if (GridDataSource.SqlDataSourceSelectCommandType == SqlDataSourceCommandType.StoredProcedure) { var nvc = new NameValueCollection(Request.QueryString); nvc.Remove("page"); var dataKey = Request.Url.AbsolutePath; if (nvc.Count > 0) { dataKey += "?" + nvc.NameValueToQueryString(false); } dataView = Cache[dataKey] as DataView; if (dataView == null) { dataView = sds.Select(DataSourceSelectArguments.Empty) as DataView; if (dataView == null) { dataView = new DataView(new DataTable()); } var expires = DateTime.Now; expires = expires.Add(new TimeSpan(0, 1, 0)); Cache.Add(dataKey, dataView, null, expires, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Normal, null); } var rowsCount = dataView.Table.AsEnumerable().Skip(GridDataSource.SqlDataSourceStartRowIndex).Take(GridDataSource.SqlDataSourceMaximumRows).Count(); for (var i = 0; i < rowsCount; i++) { OnRowDataBinding(new RowDataBindingEventArgs(i, dataView.Table.Rows[GridDataSource.SqlDataSourceStartRowIndex + i], result)); } result.Body.TotalRecords = dataView.Table.Rows.Count; } } if (dataView == null) { dataView = sds.Select(DataSourceSelectArguments.Empty) as DataView; for (var i = 0; i < dataView.Table.Rows.Count; i++) { OnRowDataBinding(new RowDataBindingEventArgs(i, dataView.Table.Rows[i], result)); } result.Body.TotalRecords = dataView.Table.Rows.Count > 0 && dataView.Table.Columns.Contains("TotalRecords") ? (Int32)dataView.Table.Rows[0]["TotalRecords"] : 0; if (result.Body.TotalRecords == 0 && PagingDisabled) { result.Body.TotalRecords = dataView.Table.Rows.Count; } } return(result); }
public RowHeadBindingEventArgs(GridDefault grid) { Grid = grid; }
public RowDataBindingEventArgs(Int32 bodyRowIndex, DataRow dataRow, GridDefault grid) { BodyRowIndex = bodyRowIndex; DataRow = dataRow; Grid = grid; }
public RowDataBindingEventArgs(Int32 bodyRowIndex, Object data, GridDefault grid) { BodyRowIndex = bodyRowIndex; Data = data; Grid = grid; }