예제 #1
0
        public Table CreateAutoTable(string name, bool dynamic = false, string items = ",", bool primary = false)
        {
            var t = new Table()
            {
                Name = name, Description = "Automatic Table", Primary = primary, Dynamic = dynamic
            };

            string[] cols = "".Split(',');
            var      tf   = new TableField();

            int count = 0;

            foreach (string c in cols)
            {
                if (string.IsNullOrEmpty(c))
                {
                    tf = new TableField()
                    {
                        Name = $"{c}", DataType = typeof(string), ViewDataType = "text"
                    }
                }
                ;
                else
                {
                    tf = new TableField()
                    {
                        Name = $"Col{count}", DataType = typeof(string), ViewDataType = "text"
                    }
                };
                t.Fields.Add(tf.Name, tf);
                count++;
            }

            return(t);
        }
예제 #2
0
        public ViewFieldGroup CreateViewFieldGroup(TableField tf)
        {
            var vfg = new ViewFieldGroup();
            var vf  = tf as ViewField;

            if (string.IsNullOrEmpty(vf.Group))
            {
                if (".text.number.date.time.url.email.file.search".IndexOf(tf.ViewDataType) > 0)
                {
                    vf.HTMLControl = "input";
                    vf.HTML5Type   = tf.ViewDataType;
                    vf.PlaceHolder = vf.Name;
                    vf.Caption     = "";
                    vfg.Fields.Add(vf);
                }
                else if (!string.IsNullOrEmpty(vf.RelatedTable))
                {
                    //combo
                    vf.HTMLControl = "select";
                    vf.Group       = vf.RelatedTable;

                    if (Tables[vf.RelatedTable].Dynamic)
                    {
                        ViewField vfText = new ViewField($"{vf.Name}_input");
                        vfText.PlaceHolder = vf.Name;
                        vfText.Group       = vf.RelatedTable;
                        ViewField vfButton = new ViewField($"{vf.Name}_button");
                        vfButton.HTMLControl = "button";
                        vfButton.Caption     = "+";
                        vfButton.Group       = vf.RelatedTable;

                        vf.Caption     = "";
                        vfText.Caption = vf.Name;
                        vfg.Fields.Add(vf);
                        vfg.Fields.Add(vfText);
                        vfg.Fields.Add(vfButton);
                    }
                    else
                    {
                        vfg.Fields.Add(vf);
                    }
                }
            }
            else
            {
                vfg.Name = vf.Group;
                //todo project group fields and build FieldGroup
            }
            return(vfg);
        }
예제 #3
0
 public ViewFieldGroup(TableField tf)
 {
     Fields = new List <ViewField>();
 }
예제 #4
0
 public void AddField(TableField f)
 {
     Fields.Add(f.Name, f);
 }