/// <summary> /// Entry point to create master grid view. /// </summary> /// <returns>An instance of <see cref="ASPxGridView"/>.</returns> public ASPxGridView CreateMasterGrid() { var masterGrid = new ASPxGridView(); masterGrid.ID = tableMeta.Name.ToCamelCase() + "Grid"; masterGrid.ClientInstanceName = "masterGrid"; masterGrid.CssClass = "gridView"; masterGrid.AutoGenerateColumns = false; masterGrid.SettingsPager.PageSize = tableMeta.App.PageSize; masterGrid.Paddings.Padding = new Unit("0px"); masterGrid.Border.BorderWidth = new Unit("0px"); masterGrid.BorderBottom.BorderWidth = new Unit("1px"); masterGrid.Settings.ShowGroupPanel = true; masterGrid.AutoGenerateColumns = false; masterGrid.SettingsBehavior.ConfirmDelete = true; masterGrid.SettingsSearchPanel.Visible = true; //arf //masterGrid.Columns.Add(GridViewHelper.AddGridViewCommandColumns(true,true,true)); masterGrid.Columns.Add(GridViewHelper.AddGridViewCommandColumns( permissions.Contains(PermissionType.Insert), permissions.Contains(PermissionType.Update), permissions.Contains(PermissionType.Delete) )); masterGrid.CustomColumnDisplayText += masterGrid_CustomColumnDisplayText; masterGrid.CellEditorInitialize += masterGrid_CellEditorInitialize; //arf masterGrid.SettingsDetail.ShowDetailRow = true; // Create grid view columns foreach (var column in tableMeta.Columns.OrderBy(c => c.OrderNo)) { if (!column.DisplayInGrid) { continue; } var dataColumn = GridViewHelper.AddGridViewDataColumn(column, connectionString); if (dataColumn != null) { masterGrid.Columns.Add(dataColumn); } } masterGrid.KeyFieldName = string.Join(";", tableMeta.PrimaryKeys.Select(x => x.Name)); masterGrid.DataSource = GridViewHelper.GetGridViewDataSource(tableMeta, connectionString); // Master-detail scenario if (tableMeta.Children.Where(c => c.IsRendered).Count() == 1) { masterGrid.SettingsDetail.ShowDetailRow = true; masterGrid.Templates.DetailRow = new DetailGridTemplate(tableMeta, connectionString, permissions); } // Master-multiple details scenario else if (tableMeta.Children.Where(c => c.IsRendered).Count() > 1) { masterGrid.SettingsDetail.ShowDetailRow = true; masterGrid.Templates.DetailRow = new MultipleDetailGridTemplate(tableMeta, connectionString, permissions); } return(masterGrid); }
/// <summary> /// The factory method to create detail grid view. /// </summary> /// <returns>An instance of <see cref="ASPxGridView"/>.</returns> public ASPxGridView CreateDetailGrid() { detailGrid = new ASPxGridView(); detailGrid.ID = gridId; detailGrid.AutoGenerateColumns = false; detailGrid.CssClass = "gridView"; detailGrid.AutoGenerateColumns = false; detailGrid.SettingsPager.PageSize = Constants.DefaultPageSize; detailGrid.Paddings.Padding = new Unit("0px"); detailGrid.Border.BorderWidth = new Unit("0px"); detailGrid.BorderBottom.BorderWidth = new Unit("1px"); detailGrid.Settings.ShowGroupPanel = true; detailGrid.AutoGenerateColumns = false; detailGrid.SettingsBehavior.ConfirmDelete = true; detailGrid.SettingsSearchPanel.Visible = true; //arf //detailGrid.Columns.Add(GridViewHelper.AddGridViewCommandColumns(true,true,true)); detailGrid.Columns.Add(GridViewHelper.AddGridViewCommandColumns( permissions.Contains(PermissionType.Insert), permissions.Contains(PermissionType.Update), permissions.Contains(PermissionType.Delete) )); foreach (var column in detailTableMeta.Columns.OrderBy(c => c.OrderNo)) { if (!column.DisplayInGrid || column.Name == foreignKey.Name) { continue; } var dataColumn = GridViewHelper.AddGridViewDataColumn(column, connectionString); if (dataColumn != null) { detailGrid.Columns.Add(dataColumn); } } detailGrid.KeyFieldName = string.Join(";", detailTableMeta.PrimaryKeys.Select(x => x.Name)); detailGrid.CellEditorInitialize += detailGrid_CellEditorInitialize; detailGrid.DataSource = GridViewHelper.GetGridViewDataSource(detailTableMeta, connectionString, foreignKey, masterKey); // Master-detail scenario if (detailTableMeta.Children.Where(c => c.IsRendered).Count() == 1) { detailGrid.SettingsDetail.ShowDetailRow = true; detailGrid.Templates.DetailRow = new DetailGridTemplate(detailTableMeta, connectionString, permissions); } // Master-multiple details scenario else if (detailTableMeta.Children.Where(c => c.IsRendered).Count() > 1) { detailGrid.SettingsDetail.ShowDetailRow = true; detailGrid.Templates.DetailRow = new MultipleDetailGridTemplate(detailTableMeta, connectionString, permissions); } detailGrid.DataBind(); detailGrid.RowInserting += new ASPxDataInsertingEventHandler(detailGrid_RowInserting); detailGrid.RowUpdating += new ASPxDataUpdatingEventHandler(detailGrid_RowUpdating); return(detailGrid); }