Example #1
0
        public override string Get()
        {
            StringBuilder grid = new StringBuilder();

            using (DataTable table = this.GetTable())
            {
                if (table.Rows.Count.Equals(0))
                {
                    return("<div class='ui message'>No record found</div>");
                }

                TagBuilder.Begin(grid, "table");
                TagBuilder.AddId(grid, "FormGridView");
                TagBuilder.AddClass(grid, ConfigBuilder.GetGridViewCssClass(this.Config));
                TagBuilder.AddStyle(grid, ConfigBuilder.GetGridViewWidth(this.Config) + ";white-space: nowrap;");
                TagBuilder.Close(grid);

                List <Column> columns = GetColumns(table).ToList();

                HeaderRow header = new HeaderRow(this.Config, columns);
                grid.Append(header.Get());

                using (Body body = new Body(this.Config, table, columns))
                {
                    grid.Append(body.Get());
                }


                TagBuilder.EndTag(grid, "table");
            }


            return(grid.ToString());
        }
Example #2
0
        public override string Get()
        {
            StringBuilder form = new StringBuilder();

            TagBuilder.Begin(form, "form");
            TagBuilder.AddId(form, "FormPanel");
            TagBuilder.AddStyle(form, "display:none;");
            TagBuilder.AddClass(form, ConfigBuilder.GetFormPanelCssClass(this.Config));
            TagBuilder.Close(form);

            TagBuilder.Begin(form, "div");
            TagBuilder.AddClass(form, ConfigBuilder.GetFormCssClass(this.Config));
            TagBuilder.Close(form);

            TagBuilder.Begin(form, "div");
            TagBuilder.AddClass(form, ConfigBuilder.GetFormDescriptionCssClass(this.Config));
            TagBuilder.Close(form);

            form.Append(Resources.Titles.RequiredFieldDetails);

            TagBuilder.EndTag(form, "div");


            TagBuilder.Begin(form, "table");
            TagBuilder.AddAttribute(form, "role", "scrud");
            TagBuilder.Close(form);

            IEnumerable <FieldConfig> fields = FieldConfigHelper.GetFields(this.Values, this.Config, this.Editing);

            foreach (Field field in fields.Select(fieldConfig => new Field(this.Config, fieldConfig)))
            {
                form.Append(field.Get());
            }


            FormFooter footer = new FormFooter(this.Config);

            form.Append(footer.Get());

            TagBuilder.EndTag(form, "table");
            TagBuilder.EndTag(form, "div");
            TagBuilder.EndTag(form, "form");

            return(form.ToString());
        }
Example #3
0
        private void BuildButton(StringBuilder builder, string type, string id, string click, string value)
        {
            TagBuilder.Begin(builder, "input");
            TagBuilder.AddType(builder, type);
            TagBuilder.AddId(builder, id);

            if (!string.IsNullOrWhiteSpace(click))
            {
                TagBuilder.AddAttribute(builder, "onclick", click);
            }

            if (!string.IsNullOrWhiteSpace(this.ButtonCssClass))
            {
                TagBuilder.AddClass(builder, this.ButtonCssClass);
            }

            TagBuilder.AddValue(builder, value);
            TagBuilder.Close(builder, true);
        }
Example #4
0
        public override string Get()
        {
            StringBuilder list = new StringBuilder();

            TagBuilder.Begin(list, "div");
            TagBuilder.AddId(list, this.FieldConfig.ColumnName);
            TagBuilder.AddClass(list, "grouped inline fields");
            TagBuilder.AddAttribute(list, "data-scrud", "radio");
            TagBuilder.Close(list);

            TagBuilder.AddRadioField(list, this.FieldConfig.ColumnName, "yes", Resources.Titles.Yes,
                                     this.FieldConfig.DefaultValue.ToUpperInvariant().Equals("TRUE"), this.FieldConfig.IsDisabled);
            TagBuilder.AddRadioField(list, this.FieldConfig.ColumnName, "no", Resources.Titles.No,
                                     this.FieldConfig.DefaultValue.ToUpperInvariant().Equals("FALSE"), this.FieldConfig.IsDisabled);


            TagBuilder.EndTag(list, "div");

            return(list.ToString());
        }
Example #5
0
        public override string Get()
        {
            GridView grid = new GridView(this.Config);

            StringBuilder gridPanel = new StringBuilder();

            TagBuilder.Begin(gridPanel, "div");
            TagBuilder.AddId(gridPanel, "GridPanel");
            TagBuilder.AddClass(gridPanel, ConfigBuilder.GetGridPanelCssClass(this.Config));
            TagBuilder.AddStyle(gridPanel, ConfigBuilder.GetGridPanelStyle(this.Config));
            TagBuilder.Close(gridPanel);

            gridPanel.Append(grid.Get());

            Pager pager = new Pager(this.Config);

            gridPanel.Append(pager.Get());

            TagBuilder.EndTag(gridPanel, "div");

            return(gridPanel.ToString());
        }
Example #6
0
        public override string Get()
        {
            if (string.IsNullOrWhiteSpace(this.FieldConfig.ColumnName))
            {
                return(string.Empty);
            }

            StringBuilder textBox = new StringBuilder();
            string        type    = "text";


            bool isPasswordField = this.FieldConfig.ColumnName.ToUpperInvariant().Equals("PASSWORD");

            TagBuilder.Begin(textBox, "input");
            TagBuilder.AddId(textBox, this.FieldConfig.ColumnName);
            TagBuilder.AddAttribute(textBox, "data-scrud", "text");

            if (isPasswordField && this.FieldConfig.IsDisabled)
            {
                type = "password";
                this.FieldConfig.DefaultValue = "fake-password";
            }

            if (this.FieldConfig.IsDisabled)
            {
                textBox.Append(" readonly='readonly'");
            }

            if (!string.IsNullOrWhiteSpace(this.ValidationType))
            {
                TagBuilder.AddAttribute(textBox, "data-vtype", this.ValidationType);
            }


            TagBuilder.AddType(textBox, type);

            if (this.FieldConfig.DataType.ToUpperInvariant().Equals("COLOR"))
            {
                TagBuilder.AddClass(textBox, "color");
            }

            if (!this.FieldConfig.DefaultValue.StartsWith("nextVal", StringComparison.OrdinalIgnoreCase))
            {
                if (this.ValidationType == "date")
                {
                    DateTime date = Conversion.TryCastDate(this.FieldConfig.DefaultValue);

                    if (date != DateTime.MinValue)
                    {
                        TagBuilder.AddValue(textBox, date.Date == date ? date.ToString("d") : date.ToString("f"));
                    }

                    TagBuilder.AddClass(textBox, "date");
                }
                else
                {
                    TagBuilder.AddValue(textBox, this.FieldConfig.DefaultValue);
                }
            }


            if (!this.FieldConfig.IsNullable)
            {
                TagBuilder.AddRequired(textBox);
            }

            if (this.FieldConfig.MaxLength > 0)
            {
                TagBuilder.AddAttribute(textBox, "maxlength", this.FieldConfig.MaxLength);
            }

            TagBuilder.Close(textBox, true);

            return(textBox.ToString());
        }
Example #7
0
        public override string Get()
        {
            StringBuilder rows = new StringBuilder();

            TagBuilder.Begin(rows, "tbody", true);

            for (int i = 0; i < this.Table.Rows.Count; i++)
            {
                DataRow row      = this.Table.Rows[i];
                string  keyValue = row[this.Config.KeyColumn].ToString();

                TagBuilder.Begin(rows, "tr", true);

                TagBuilder.Begin(rows, "td", true);

                TagBuilder.Begin(rows, "input");
                TagBuilder.AddType(rows, "radio");
                TagBuilder.AddId(rows, "SelectRadio" + keyValue);
                TagBuilder.AddValue(rows, keyValue);

                TagBuilder.Close(rows, true);

                TagBuilder.EndTag(rows, "td");


                foreach (Column column in this.Columns)
                {
                    TagBuilder.Begin(rows, "td");

                    switch (column.Type.FullName)
                    {
                    case "System.Decimal":
                    case "System.Double":
                    case "System.Single":
                        TagBuilder.AddClass(rows, "text right");
                        TagBuilder.Close(rows);

                        decimal value = Conversion.TryCastDecimal(row[column.ColumnName]);

                        if (!value.Equals(0))
                        {
                            rows.Append(value.ToString("N", CultureInfo.CurrentCulture));
                        }

                        break;

                    case "System.DateTime":
                        TagBuilder.AddClass(rows, "text right");
                        TagBuilder.Close(rows);

                        DateTime date = Conversion.TryCastDate(row[column.ColumnName]);

                        rows.Append(date.Date == date
                                ? Conversion.TryCastDate(date).ToString("D", CultureInfo.CurrentCulture)
                                : Conversion.TryCastDate(date).ToString("F", CultureInfo.CurrentCulture));

                        break;

                    default:
                        TagBuilder.Close(rows);
                        rows.Append(HttpUtility.HtmlEncode(row[column.ColumnName]));
                        break;
                    }

                    TagBuilder.EndTag(rows, "td");
                }

                TagBuilder.EndTag(rows, "tr");
            }

            TagBuilder.EndTag(rows, "tbody");

            return(rows.ToString());
        }
Example #8
0
        private string GetSelect()
        {
            StringBuilder select = new StringBuilder();

            TagBuilder.Begin(select, "select");
            TagBuilder.AddId(select, this.FieldConfig.ColumnName);
            TagBuilder.AddAttribute(select, "data-scrud", "select");

            if (!this.FieldConfig.IsNullable)
            {
                TagBuilder.AddRequired(select);
            }

            if (this.FieldConfig.IsDisabled)
            {
                TagBuilder.AddDisabled(select);
            }


            TagBuilder.Close(select);

            using (
                DataTable table = GetTable(this.FieldConfig.ParentTableSchema, this.FieldConfig.ParentTable,
                                           this.FieldConfig.ParentTableColumn, this.Config.DisplayViews, this.Config.UseDisplayViewsAsParents))
            {
                //Get the expression value of display field from comma separated list of expressions.
                //The expression can be either the column name or a column expression.
                string columnOrExpression = Helpers.Expression.GetExpressionValue(this.Config.DisplayFields,
                                                                                  this.FieldConfig.ParentTableSchema, this.FieldConfig.ParentTable, this.FieldConfig.ParentTableColumn);

                //Let's check whether the display field expression really exists.
                //If it does not exist, it is probably an expression column.
                if (!table.Columns.Contains(columnOrExpression) && !string.IsNullOrWhiteSpace(columnOrExpression))
                {
                    //Add the expression as a new column in the datatable.
                    table.Columns.Add("DataTextField", typeof(string), columnOrExpression);
                    columnOrExpression = "DataTextField";
                }

                if (table.Rows.Count > 0)
                {
                    if (this.FieldConfig.IsNullable)
                    {
                        TagBuilder.Begin(select, "option");
                        TagBuilder.AddAttribute(select, "value", string.Empty);
                        TagBuilder.Close(select);
                        select.Append(string.Empty);
                        TagBuilder.EndTag(select, "option");
                    }

                    foreach (DataRow row in table.Rows)
                    {
                        string value = row[this.FieldConfig.ParentTableColumn].ToString();

                        TagBuilder.Begin(select, "option");
                        TagBuilder.AddAttribute(select, "value", value);


                        if (value == this.FieldConfig.DefaultValue)
                        {
                            TagBuilder.AddSelected(select);
                        }

                        TagBuilder.Close(select);

                        @select.Append(!string.IsNullOrWhiteSpace(columnOrExpression) ? row[columnOrExpression] : row[1]);

                        TagBuilder.EndTag(select, "option");
                    }
                }
            }

            TagBuilder.EndTag(select, "select");

            return(select.ToString());
        }