Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }