예제 #1
0
        private void InitializeEditors()
        {
            var skip         = ViewContext.HttpContext.Items["$SelfInitialize$"] != null && (bool)ViewContext.HttpContext.Items["$SelfInitialize$"] == true;
            var popupSlashes = new Regex("(?<=data-val-regex-pattern=\")([^\"]*)", RegexOptions.Multiline);

            ViewContext.HttpContext.Items["$SelfInitialize$"] = true;

            var dataItem = Editable.DefaultDataItem();

            var htmlHelper = new GridHtmlHelper <T>(ViewContext, DataKeyStore);

            if (Editable.Mode != GridEditMode.InLine && Editable.Mode != GridEditMode.InCell)
            {
                var container = new HtmlElement("div").AddClass(UIPrimitives.Grid.InFormContainer);

                htmlHelper.EditorForModel(dataItem, Editable.TemplateName, Columns.OfType <IGridForeignKeyColumn>().Select(c => c.SerializeSelectList), Editable.AdditionalViewData).AppendTo(container);

                EditorHtml = popupSlashes.Replace(container.InnerHtml, match =>
                {
                    return(match.Groups[0].Value.Replace("\\", IsInClientTemplate ? "\\\\\\\\" : "\\\\"));
                });
            }
            else
            {
                var cellBuilderFactory = new GridCellBuilderFactory();


                VisibleColumns.Each(column =>
                {
                    var cellBuilder = cellBuilderFactory.CreateEditCellBuilder(column, htmlHelper);
                    var editor      = cellBuilder.CreateCell(dataItem);
                    var editorHtml  = editor.InnerHtml;
                    if (IsInClientTemplate)
                    {
                        editorHtml = popupSlashes.Replace(editorHtml, match =>
                        {
                            return(match.Groups[0].Value.Replace("\\", "\\\\"));
                        });
                    }
                    column.EditorHtml = editorHtml;
                });
            }

            if (!skip)
            {
                ViewContext.HttpContext.Items.Remove("$SelfInitialize$");
            }
        }
예제 #2
0
        private GridRenderingData CreateRenderingData()
        {
            var renderingData = new GridRenderingData
            {
                TableHtmlAttributes = TableHtmlAttributes,
                DataKeyStore        = DataKeyStore,
                HtmlHelper          = new GridHtmlHelper <T>(ViewContext, DataKeyStore),
                UrlBuilder          = UrlBuilder,
                DataSource          = DataSource.Data,
                Columns             = VisibleColumns.Cast <IGridColumn>(),
                GroupMembers        = DataSource.Groups.Select(g => g.Member),
                Mode              = CurrentItemMode,
                EditMode          = Editable.Mode,
                HasDetailTemplate = HasDetailTemplate,
                Colspan           = Colspan - Columns.Count(column => column.Hidden),
                DetailTemplate    = MapDetailTemplate(HasDetailTemplate ? DetailTemplate : null),
                NoRecordsTemplate = FormatNoRecordsTemplate(),
                ScrollingHeight   = Scrollable.Height,
                //EditFormHtmlAttributes = Editing.FormHtmlAttributes,
                ShowFooter         = VisibleColumns.Any(c => c.FooterTemplate.HasValue() || c.ClientFooterTemplate.HasValue()),
                AggregateResults   = DataSource.AggregateResults ?? new List <AggregateResult>(),
                Aggregates         = Aggregates.SelectMany(aggregate => aggregate.Aggregates),
                GroupsCount        = DataSource.Groups.Count,
                ShowGroupFooter    = Aggregates.Any() && VisibleColumns.OfType <IGridBoundColumn>().Any(c => c.GroupFooterTemplate.HasValue()),
                PopUpContainer     = new HtmlFragment(),
                CreateNewDataItem  = () => Editable.DefaultDataItem(),
                InsertRowPosition  = Editable.CreateAt,
                EditTemplateName   = Editable.TemplateName,
                AdditionalViewData = Editable.AdditionalViewData,
                FormId             = ViewContext.FormContext.FormId,
                Callback           = RowActionCallback
            };

            if (RowTemplate.HasValue())
            {
                renderingData.RowTemplate = (dataItem, container) => RowTemplate.Apply((T)dataItem, container);
            }

            return(renderingData);
        }
예제 #3
0
        private void InitializeEditors()
        {
            var skip = ViewContext.HttpContext.Items["$SelfInitialize$"] != null && (bool)ViewContext.HttpContext.Items["$SelfInitialize$"] == true;

            ViewContext.HttpContext.Items["$SelfInitialize$"] = true;

            var dataItem = Editable.DefaultDataItem();

            var htmlHelper = new GridHtmlHelper <T>(ViewContext, DataKeyStore);

            if (Editable.Mode != GridEditMode.InLine && Editable.Mode != GridEditMode.InCell)
            {
                var container = new HtmlElement("div").AddClass(UIPrimitives.Grid.InFormContainer);

                htmlHelper.EditorForModel(dataItem, Editable.TemplateName, Columns.OfType <IGridForeignKeyColumn>().Select(c => c.SerializeSelectList), Editable.AdditionalViewData).AppendTo(container);

                EditorHtml = container.InnerHtml;
            }
            else
            {
                var cellBuilderFactory = new GridCellBuilderFactory();


                VisibleColumns.Each(column =>
                {
                    var cellBuilder = cellBuilderFactory.CreateEditCellBuilder(column, htmlHelper);

                    var editor = cellBuilder.CreateCell(dataItem);

                    column.EditorHtml = editor.InnerHtml;
                });
            }

            if (!skip)
            {
                ViewContext.HttpContext.Items.Remove("$SelfInitialize$");
            }
        }
예제 #4
0
        private void InitializeEditor()
        {
            if (Editable.Enabled)
            {
                var popupSlashes = new Regex("(?<=data-val-regex-pattern=\")([^\"]*)", RegexOptions.Multiline);
                var helper       = new HtmlHelper <T>(ViewContext, new ListViewViewDataContainer <T>(Editable.DefaultDataItem(), ViewData));

                if (Editable.TemplateName.HasValue())
                {
                    EditorHtml = helper.EditorForModel(Editable.TemplateName).ToHtmlString();
                }
                else
                {
                    EditorHtml = helper.EditorForModel().ToHtmlString();
                }

                EditorHtml = popupSlashes.Replace(EditorHtml, match =>
                {
                    return(match.Groups[0].Value.Replace("\\", IsInClientTemplate ? "\\\\\\\\" : "\\\\"));
                });
            }
        }
예제 #5
0
        private void InitializeEditor()
        {
            if (Editable.Enabled)
            {
                var helper = new HtmlHelper <T>(ViewContext, new ListViewViewDataContainer <T>(Editable.DefaultDataItem(), ViewData));

                if (Editable.TemplateName.HasValue())
                {
                    EditorHtml = helper.EditorForModel(Editable.TemplateName).ToHtmlString();
                }
                else
                {
                    EditorHtml = helper.EditorForModel().ToHtmlString();
                }
            }
        }