webform快速创建表单内容文件--oracle 数据库

使用方法

前台页面这样写就足够了

<form class="stdform" runat="server">
     <div id="field_tab_content" runat="server"></div>
</form>

新增编辑加载页面(改页面需要继承CreateModel类)

Type type;
public decimal id = 0;
protected void Page_Init(object sernder, EventArgs e)
{
       //初始化类型
       this.XTYPE = new S_NARTICLE();
       S_NARTICLE pros = new S_NARTICLE();
       dec
       if (!string.IsNullOrEmpty(Request["id"]))
        {
              id = Convert.ToDecimal(Request["id"]);
              if(id>0)
              {
                      //通过id获取项目信息
                     XTYPE = data.S_NARTICLE.FirstOrDefault(p => p.ARTID == id);
              }
        }
      //设置特殊字段
      fileds.Add(new FiledInfo() { FiledName = "PID", IsHide = true });
      //设置下拉列表数据
      //设置下拉类表选项
      List<DictionaryEntry> industriesTypeList = new List<DictionaryEntry>();
      industriesTypeList.Add(new DictionaryEntry("是", "T"));
      industriesTypeList.Add(new DictionaryEntry("否", "F"));
      SpecialControls.Add(new EditPageControl() { CType = ContorlType.select, FiledName ="字段名称", Value = industriesTypeList});
      this.CreateData1(type);
      field_tab_content.Controls.Add(Cache[type.Name + "htmlDD"] as Control);
}

保存页面

protected void btnSave_Click(object sender, EventArgs e)
{
     this.Save1(field_tab_content, type, XTYPE);
     S_NARTICLE project = XTYPE as S_NARTICLE;
    if (project.ARTID == 0)
    {
        //新增操作
        //特殊字段处理。。。。
    }else{
        //修改操作
        //特殊字段处理。。。。
    }
}

CreateModel类

public class CreateModel : System.Web.UI.Page
{

       public object XTYPE;
        public List<FiledInfo> fileds = new List<FiledInfo>();//设置属性
        public List<EditPageControl> SpecialControls = new List<EditPageControl>();//设置属性
        public List<L_CATTACHMENT> filelist = new List<L_CATTACHMENT>();//附件信息
        public StringBuilder text = new StringBuilder();
        public bool isReadonly = false;
        public bool isAllalien = false;
//创建表单内容文件
public void NewList(Type type)
        {
            HtmlGenericControl htmlDD = new HtmlGenericControl("div");
            htmlDD.Attributes.Add("class", "boxcontents procontent");
            if (Cache["" + type.Name + ""] == null)
            {
                //获取数据oracle数据库中的字段名称和备注
                DataSet ds = DbHelperOleDb.GetListBySql("select table_name,column_Name,Comments from user_col_comments where table_name=‘" + type.Name + "‘");
                Cache["" + type.Name + ""] = ds;
            }
            if (Cache["" + type.Name + ""] != null)
            {
                foreach (DataRow item in (Cache["" + type.Name + ""] as DataSet).Tables[0].Rows)
                {
                    //没有预置的字段
                    if (fileds.Count == 0 || fileds.Count(p => p.FiledName.ToUpper() == item["column_Name"].ToString()) == 0)
                    {
                        fileds.Add(new FiledInfo() { FiledName = item["column_Name"].ToString(), FiledDesc = item["Comments"].ToString(), Index = 0 });
                    }
                    else
                    {
                        var f = fileds.FirstOrDefault(p => p.FiledName.ToUpper() == item["column_Name"].ToString());
                        if (f != null)
                            f.FiledDesc = item["Comments"].ToString();
                    }

                }
                fileds = fileds.OrderBy(p => p.Index).ToList();

                foreach (var filed in fileds)
                {
                    //隐藏字段不处理
                    if (filed.IsHide)
                        continue;
                    //设置占全行
                    if (isAllalien)
                    {
                        filed.AllLine = isAllalien;
                    }
                    #region  boxdiv设置表单每项的外部样式
                    HtmlGenericControl boxdiv = new HtmlGenericControl("div");//boxdiv
                    var boxdivclass = ConfigurationManager.AppSettings["boxdiv"];
                    if (!string.IsNullOrEmpty(boxdivclass))
                    {

                        boxdiv.Attributes.Add("class", boxdivclass);
                    }
                    else
                    {
                        boxdiv.Attributes.Add("class", "listitem form-group");
                    }
                    #region boxChildlabel
                    HtmlGenericControl boxChildlabel = new HtmlGenericControl("label");//boxChildlabel
                    var boxChildlabelclass = ConfigurationManager.AppSettings["boxChildlabel"];
                    if (!string.IsNullOrEmpty(boxChildlabelclass))
                    {

                        boxChildlabel.Attributes.Add("class", boxChildlabelclass);
                    }
                    else
                    {
                        boxChildlabel.Attributes.Add("class", "listleft titles");
                    }
                    boxChildlabel.InnerText = filed.FiledDesc + ":";
                    #endregion

                    HtmlGenericControl boxChilddiv = new HtmlGenericControl("div");//boxChilddiv
                    var boxChilddivclass = ConfigurationManager.AppSettings["boxChilddiv"];
                    if (!string.IsNullOrEmpty(boxChilddivclass))
                    {

                        boxChilddiv.Attributes.Add("class", boxChilddivclass);
                    }
                    else
                    {
                        boxChilddiv.Attributes.Add("class", "listleft con");
                    }
                    PropertyInfo cons = type.GetProperty(filed.FiledName);
                    #endregion

                    var specialContorl = SpecialControls.FirstOrDefault(p => p.FiledName.ToLower() == filed.FiledName.ToLower());
                    if (specialContorl == null)
                    {
                        specialContorl = SpecialControls.FirstOrDefault(p => p.FiledName.ToUpper() == filed.FiledName.ToUpper());

                    }
                    if (specialContorl != null)
                    {
                        #region 处理特殊控件
                        switch (specialContorl.CType)
                        {
                            case ContorlType.checkbox:
                                CheckBoxList dts = new CheckBoxList();
                                dts.ID = "S_" + filed.FiledName;
                                dts.RepeatDirection = RepeatDirection.Horizontal;
                                dts.RepeatColumns = 4;
                                filed.AllLine = true;
                                if (specialContorl.Value != null)
                                {
                                    foreach (var item in specialContorl.Value as List<DictionaryEntry>)
                                    {
                                        dts.Items.Add(new ListItem() { Text = item.Key + "", Value = item.Value + "" });
                                    }
                                }
                                dts.Enabled = !isReadonly;
                                //只读显示
                                HtmlGenericControl spandts = new HtmlGenericControl("span");
                                spandts.InnerText = "{{project." + filed.FiledName.ToLower() + "}}";
                                spandts.Attributes.Add("v-show", "isshow");

                                #region 多选按钮样式
                                var checkboxclass = ConfigurationManager.AppSettings[ContorlType.checkbox.ToString()];
                                if (!string.IsNullOrEmpty(checkboxclass))
                                {

                                    dts.Attributes.Add("class", checkboxclass);
                                }
                                else
                                {
                                    dts.Attributes.Add("class", "");
                                }
                                if (!string.IsNullOrEmpty(specialContorl.thisclass))
                                {

                                    dts.Attributes.Add("class", specialContorl.thisclass);
                                }
                                #endregion
                                if (isReadonly)
                                {
                                    boxChilddiv.Controls.Add(spandts);
                                }
                                else
                                {
                                    boxChilddiv.Controls.Add(dts);
                                }
                                break;
                            case ContorlType.select:
                                DropDownList ddl = new DropDownList();
                                ddl.ID = "S_" + filed.FiledName;
                                ddl.Enabled = !isReadonly;
                                if (filed.Readonly)
                                {
                                    ddl.Enabled = false;
                                }
                                string selectname = "";
                                if (specialContorl.Value != null)
                                {

                                    var items = specialContorl.Value as List<DictionaryEntry>;
                                    ddl.DataSource = items;
                                    ddl.DataValueField = "value";
                                    ddl.DataTextField = "key";
                                    ddl.DataBind();
                                    ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(cons.GetValue(XTYPE) + ""));
                                    if (filed.FiledDesc == "采购人角色" || filed.FiledDesc == "采购代理机构角色")
                                    {
                                        ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue("04"));
                                    }
                                    var selvalu = cons.GetValue(XTYPE);
                                    var po = items.FirstOrDefault(x => x.Value == selvalu);
                                    selectname = ddl.SelectedItem.Text;
                                }
                                HtmlGenericControl spandtsd = new HtmlGenericControl("span");
                                //spandtsd.InnerText = "{{project." + filed.FiledName.ToLower() + "}}" + selectname;
                                spandtsd.InnerText = selectname;
                                spandtsd.Attributes.Add("v-show", "isshow");
                                ddl.Attributes.Add("style", "width:98%;");

                                #region 下拉列表样式设置
                                var selectclass = ConfigurationManager.AppSettings[ContorlType.select.ToString()];
                                if (!string.IsNullOrEmpty(selectclass))
                                {

                                    ddl.Attributes.Add("class", selectclass);
                                }
                                else
                                {
                                    ddl.Attributes.Add("class", "");
                                }
                                if (!string.IsNullOrEmpty(specialContorl.thisclass))
                                {

                                    ddl.Attributes.Add("class", specialContorl.thisclass);
                                }
                                #endregion
                                if (isReadonly)
                                {
                                    boxChilddiv.Controls.Add(spandtsd);
                                }
                                else
                                {
                                    boxChilddiv.Controls.Add(ddl);
                                }
                                break;
                            case ContorlType.FontColor:
                                HtmlTextArea txtTextArea1s = new HtmlTextArea();
                                txtTextArea1s.ID = "S_" + filed.FiledName;
                                txtTextArea1s.InnerText = cons.GetValue(XTYPE) + "";

                                #region 字体样式设置
                                var FontColorclass = ConfigurationManager.AppSettings[ContorlType.FontColor.ToString()];
                                if (!string.IsNullOrEmpty(FontColorclass))
                                {

                                    txtTextArea1s.Attributes.Add("class", FontColorclass);
                                }
                                else
                                {
                                    txtTextArea1s.Attributes.Add("class", "");
                                }
                                if (!string.IsNullOrEmpty(specialContorl.thisclass))
                                {

                                    txtTextArea1s.Attributes.Add("class", specialContorl.thisclass);
                                }
                                #endregion

                                if (isReadonly)
                                {
                                    txtTextArea1s.Attributes.Add("readOnly", isReadonly + "");
                                }
                                HtmlGenericControl sp = new HtmlGenericControl("span");
                                sp.InnerText = "{{project." + filed.FiledName.ToLower() + "}}";
                                sp.Attributes.Add("v-show", "isshow");
                                if (isReadonly)
                                {
                                    boxChilddiv.Controls.Add(sp);
                                }
                                else
                                    boxChilddiv.Controls.Add(txtTextArea1s);

                                break;
                            case ContorlType.uedit:

                                HtmlTextArea txtTextArea1 = new HtmlTextArea();
                                txtTextArea1.ID = "S_" + filed.FiledName;
                                txtTextArea1.Attributes.Add("class", "show");
                                txtTextArea1.InnerText = cons.GetValue(XTYPE) + "";
                                filed.AllLine = true;

                                #region 编辑器设置
                                var ueditclass = ConfigurationManager.AppSettings[ContorlType.uedit.ToString()];
                                if (!string.IsNullOrEmpty(ueditclass))
                                {

                                    txtTextArea1.Attributes.Add("class", ueditclass);
                                }
                                else
                                {
                                    txtTextArea1.Attributes.Add("class", "");
                                }
                                if (!string.IsNullOrEmpty(specialContorl.thisclass))
                                {

                                    txtTextArea1.Attributes.Add("class", specialContorl.thisclass);
                                }
                                if (isReadonly)
                                {
                                    txtTextArea1.Attributes.Add("readOnly", isReadonly + "");
                                }
                                HtmlGenericControl ssp = new HtmlGenericControl("span");
                                ssp.InnerText = "{{project." + filed.FiledName.ToLower() + "}}";
                                ssp.Attributes.Add("v-show", "isshow");
                                if (isReadonly)
                                {
                                    boxChilddiv.Controls.Add(ssp);
                                }
                                else
                                    boxChilddiv.Controls.Add(txtTextArea1);
                                #endregion
                                break;
                            case ContorlType.fileUpload:

                                TextBox box = new TextBox();
                                box.ID = "S_" + filed.FiledName;
                                box.Text = cons.GetValue(XTYPE) + "";
                                if (!isReadonly)
                                {
                                    box.Attributes.Add("class", "input code input normal upload-path");
                                }

                                box.Attributes.Add("style", "width:82%");
                                HtmlGenericControl imgdiv = new HtmlGenericControl("div");

                                HtmlGenericControl ssps = new HtmlGenericControl("span");
                                ssps.InnerText = "{{project." + filed.FiledName.ToLower() + "}}";
                                ssps.Attributes.Add("v-show", "isshow");

                                #region 文件上传样式设置
                                var fileUploadclass = ConfigurationManager.AppSettings[ContorlType.fileUpload.ToString()];
                                if (!string.IsNullOrEmpty(fileUploadclass))
                                {

                                    box.Attributes.Add("class", fileUploadclass);
                                }
                                else
                                {
                                    box.Attributes.Add("class", "upload-box upload-img");
                                }
                                if (!string.IsNullOrEmpty(specialContorl.thisclass))
                                {

                                    box.Attributes.Add("class", specialContorl.thisclass);
                                }
                                if (!isReadonly)
                                {
                                    imgdiv.Attributes.Add("class", "upload-box upload-img");
                                }
                                box.ReadOnly = isReadonly;
                                if (isReadonly)
                                {
                                    boxChilddiv.Controls.Add(ssps);
                                }
                                else
                                {
                                    boxChilddiv.Controls.Add(box);
                                }
                                #endregion
                                break;
                            case ContorlType.fileUploadmore:

                                HtmlGenericControl boxd = new HtmlGenericControl();
                                boxd.ID = "S_" + filed.FiledName;
                                var filecontent = cons.GetValue(XTYPE) + "";

                                HtmlGenericControl imgdivs = new HtmlGenericControl("div");
                                imgdivs.Attributes.Add("class", "photo-list");
                                HtmlGenericControl ul = new HtmlGenericControl("ul");
                                #region 添加相应的内容
                                //获取相应的内容  并将值赋值到相应的控件上
                                if (!string.IsNullOrEmpty(filecontent))
                                {
                                    var name = filecontent;
                                    //基本信息
                                    if (!string.IsNullOrEmpty(name))
                                    {
                                        List<decimal?> Pids = new List<decimal?>();
                                        string[] AllPid = name.Trim(‘,‘).Split(‘,‘);
                                        for (int i = 0; i < AllPid.Length; i++)
                                        {

                                            HtmlGenericControl li = new HtmlGenericControl("li");
                                            var da = Convert.ToDecimal(AllPid[i]);
                                            var filemodel = filelist.FirstOrDefault(x => x.ATTACHMENTID == da);
                                            if (filemodel != null)
                                            {
                                                HtmlGenericControl hid_photo_name = new HtmlGenericControl("input");
                                                hid_photo_name.Attributes.Add("name", "hid_photo_name" + filed.FiledName);
                                                hid_photo_name.Attributes.Add("type", "hidden");
                                                hid_photo_name.Attributes.Add("value", "" + filemodel.ATTACHMENTID + "|" + filemodel.FILEOLDNAME + "|" + filemodel.FILESIZE + "|" + filemodel.FILEPATH + "|" + filemodel.FILEPATH + "");
                                                HtmlGenericControl hid_photo_remark = new HtmlGenericControl("input");
                                                hid_photo_remark.Attributes.Add("name", "hid_photo_remark" + filed.FiledName);
                                                hid_photo_remark.Attributes.Add("type", "hidden");
                                                hid_photo_remark.Attributes.Add("value", filemodel.FILEOLDNAME);

                                                HtmlGenericControl contentdiv = new HtmlGenericControl("div");
                                                contentdiv.Attributes.Add("class", "img-box");
                                                contentdiv.Attributes.Add("style", "height:25px;");
                                                //contentdiv.Attributes.Add("onclick", "setFocusImg(this);");

                                                //HtmlGenericControl contentspan = new HtmlGenericControl("span");
                                                HtmlGenericControl contentspan = new HtmlGenericControl("a");
                                                contentspan.Attributes.Add("class", "remark");
                                                contentspan.Attributes.Add("href", filemodel.FILEPATH);
                                                //<a target="_blank"></a>
                                                contentspan.Attributes.Add("target", "_blank");

                                                HtmlGenericControl contenti = new HtmlGenericControl("i");
                                                contenti.InnerText = filemodel.FILEREMARK == "" ? filemodel.FILEOLDNAME : filemodel.FILEREMARK;
                                                contentspan.Controls.Add(contenti);
                                                contentdiv.Controls.Add(contentspan);

                                                //HtmlGenericControl remarda = new HtmlGenericControl("a");
                                                //remarda.InnerText = "描述";
                                                //remarda.Attributes.Add("href", "javascript:;");
                                                //remarda.Attributes.Add("onclick", "setRemark(this);");
                                                //HtmlGenericControl del = new HtmlGenericControl("a");
                                                //del.InnerText = "删除";
                                                //del.Attributes.Add("href", "javascript:;");
                                                //del.Attributes.Add("onclick", "delImg(this);");
                                                li.Controls.Add(hid_photo_name);//基本信息
                                                li.Controls.Add(hid_photo_remark);//备注
                                                li.Controls.Add(contentdiv);//备注
                                                //li.Controls.Add(remarda);//备注
                                                //li.Controls.Add(del);//删除
                                                ul.Controls.Add(li);
                                            }
                                        }
                                    }

                                }
                                #endregion

                                imgdivs.Controls.Add(ul);
                                boxChilddiv.Controls.Add(boxd);
                                HtmlGenericControl sspsd = new HtmlGenericControl("span");
                                sspsd.InnerText = "{{project." + filed.FiledName.ToLower() + "}}";
                                sspsd.Attributes.Add("v-show", "isshow");
                                //if (isReadonly)
                                //{
                                //    boxChilddiv.Controls.Add(sspsd);
                                //}
                                //else
                                #region 文件上传样式设置
                                var fileUploadmoreclass = ConfigurationManager.AppSettings[ContorlType.fileUploadmore.ToString()];
                                if (!string.IsNullOrEmpty(fileUploadmoreclass))
                                {
                                    boxd.Attributes.Add("class", fileUploadmoreclass);
                                }
                                if (!string.IsNullOrEmpty(specialContorl.thisclass))
                                {

                                    boxd.Attributes.Add("class", specialContorl.thisclass);
                                }
                                if (!isReadonly)
                                {
                                    boxd.Attributes.Add("class", "upload-box upload-album");
                                    boxd.Attributes.Add("value", filecontent + "");
                                }
                                #endregion
                                boxChilddiv.Controls.Add(imgdivs);
                                break;
                            default:
                                break;
                        }
                        #endregion
                    }
                    else
                    {
                        #region 处理一般控件
                        PropertyInfo con = type.GetProperty(filed.FiledName);
                        if (con != null)
                        {
                            var valtype = con.PropertyType;
                            if (valtype.IsGenericType && valtype.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))//判断convertsionType是否为nullable泛型类
                            {
                                //如果type为nullable类,声明一个NullableConverter类,该类提供从Nullable类到基础基元类型的转换
                                System.ComponentModel.NullableConverter nullableConverter = new System.ComponentModel.NullableConverter(valtype);
                                //将type转换为nullable对的基础基元类型
                                valtype = nullableConverter.UnderlyingType;
                            }
                            TextBox txtControl = new TextBox();
                            if (valtype.Name == "Decimal" || valtype.Name == "Single")
                            {
                                filed.IsRequired = true;
                                filed.VerificationStrType = VerificationStr.decmilnumber;
                                //txtControl.Attributes.Add("type", "number");
                                txtControl.CssClass = "mediuminput";
                                txtControl.Text = "0";//设置初始值
                            }
                            else if (valtype.Name == "DateTime")
                            {
                                filed.VerificationStrType = VerificationStr.checkFullTime;
                                txtControl.CssClass = "laydate-icon";
                                if (!isReadonly)
                                {
                                    if (filed.FiledName == "PUBTIME")
                                    {
                                        txtControl.Attributes.Add("onclick", "laydate({istime: true, format: ‘YYYY-MM-DD‘})");
                                    }
                                    else
                                    {
                                        txtControl.Attributes.Add("onclick", "laydate({istime: true, format: ‘YYYY-MM-DD hh:mm:ss‘})");
                                    }
                                }
                                //txtControl.Attributes.Add("style", "width:91%;float:left");

                            }
                            else
                            {
                                txtControl.CssClass = "mediuminput";
                            }

                            txtControl.ReadOnly = isReadonly;

                            //设置id
                            txtControl.ID = "S_" + filed.FiledName.ToString();
                            //赋值
                            if (XTYPE != null)
                            {
                                txtControl.Text = cons.GetValue(XTYPE) + "";
                                if (filed.FiledName == "STOPTIME")
                                {
                                    txtControl.Attributes.Add("placeholder", "不填写永久显示");
                                    txtControl.Text = cons.GetValue(XTYPE) + "" == "" ? "9999/12/31" : cons.GetValue(XTYPE) + "";
                                }
                            }

                            if (filed.Readonly)
                            {
                                txtControl.ReadOnly = true;
                            }
                            if (filed.FiledName == "PASSWORD")
                            {
                                txtControl.TextMode = TextBoxMode.Password;//设置密码框
                            }
                            txtControl.Attributes.Add("tipmsg", filed.FiledDesc);//设置属性
                            if (filed.FiledName == "PASSWORD")
                            {
                                txtControl.TextMode = TextBoxMode.Password;//设置密码框 

                            }
                            HtmlGenericControl sspsdd = new HtmlGenericControl("span");
                            sspsdd.InnerText = "{{project." + filed.FiledName.ToLower() + "}}";
                            sspsdd.Attributes.Add("v-show", "isshow");
                            txtControl.Attributes.Add("v-model", "project." + filed.FiledName.ToLower() + "");

                            #region 设置文本框样式
                            var fileUploadmoreclass = ConfigurationManager.AppSettings["input"];
                            if (!string.IsNullOrEmpty(fileUploadmoreclass))
                            {
                                txtControl.CssClass = fileUploadmoreclass;
                            }
                            if (!string.IsNullOrEmpty(filed.thisclass))
                            {

                                txtControl.CssClass = filed.thisclass;
                            }
                            //设置文本框类型
                            switch (filed.inputtpe)
                            {
                                case Inputtype.text:
                                case Inputtype.password:
                                case Inputtype.datetime:
                                case Inputtype.date:
                                case Inputtype.month:
                                case Inputtype.time:
                                case Inputtype.week:
                                case Inputtype.number:
                                case Inputtype.email:
                                case Inputtype.url:
                                case Inputtype.search:
                                case Inputtype.tel:
                                case Inputtype.color:
                                    txtControl.Attributes.Add("type", filed.inputtpe.ToString());
                                    break;
                                default:
                                    break;
                            }
                            #endregion

                            if (isReadonly)
                            {
                                boxChilddiv.Controls.Add(sspsdd);
                            }
                            else
                                boxChilddiv.Controls.Add(txtControl);
                        }
                        #endregion
                    }
                    if (filed.IsRequired)
                    {
                        HtmlGenericControl error = new HtmlGenericControl("span");
                        error.Attributes.Add("title", filed.errormessage);//添加提示信息
                        error.Attributes.Add("type", filed.VerificationStrType + "");//添加提示信息
                        error.InnerText = "*";
                        error.Attributes.Add("style", "color:red;position: absolute;left: 0;folat:left");
                        boxChilddiv.Controls.Add(error);
                    }
                    boxdiv.Controls.Add(boxChildlabel);
                    boxdiv.Controls.Add(boxChilddiv);
                    htmlDD.Controls.Add(boxdiv);
                }
            }
            Cache[type.Name + "htmlDD"] = htmlDD;
        }
//获取值
public void Save1(HtmlGenericControl field_tab_content, Type type, object XTYPE)
        {
            #region 赋值
            foreach (var filed in fileds)
            {
                //取到属性
                PropertyInfo property = type.GetProperty(filed.FiledName.ToUpper());
                if (property != null)
                {
                    var valtype = property.PropertyType;
                    if (valtype.IsGenericType && valtype.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))//判断convertsionType是否为nullable泛型类
                    {
                        //如果type为nullable类,声明一个NullableConverter类,该类提供从Nullable类到基础基元类型的转换
                        System.ComponentModel.NullableConverter nullableConverter = new System.ComponentModel.NullableConverter(valtype);
                        //将type转换为nullable对的基础基元类型
                        valtype = nullableConverter.UnderlyingType;
                    }
                    var specialContorl = SpecialControls.FirstOrDefault(p => p.FiledName.ToLower() == filed.FiledName.ToLower());
                    if (specialContorl != null)
                    {

                        #region 特殊控件取值
                        switch (specialContorl.CType)
                        {
                            case ContorlType.select:
                                DropDownList ddl = field_tab_content.FindControl("S_" + filed.FiledName) as DropDownList;
                                if (ddl != null)
                                {
                                    var ddlVal = ddl.SelectedItem.Value.Trim();
                                    if (ddlVal != "")
                                        property.SetValue(XTYPE, Convert.ChangeType(ddlVal, valtype), null);
                                }
                                break;
                            case ContorlType.fileUpload:
                                TextBox text = field_tab_content.FindControl("S_" + filed.FiledName) as TextBox;
                                string fileNames = text.Text.Trim();
                                HiddenField hidFileNames = field_tab_content.FindControl("S_HID_" + filed.FiledName) as HiddenField;
                                if (hidFileNames != null)
                                    property.SetValue(XTYPE, Convert.ChangeType(hidFileNames.Value + fileNames.Trim(‘;‘), valtype), null);
                                else
                                    property.SetValue(XTYPE, Convert.ChangeType(fileNames.Trim(‘;‘), valtype), null);

                                break;
                            case ContorlType.fileUploadmore:

                                break;
                            case ContorlType.uedit:
                            case ContorlType.FontColor:
                                HtmlTextArea txtControls = field_tab_content.FindControl("S_" + filed.FiledName) as HtmlTextArea;
                                var ueditVal = txtControls.InnerText;
                                property.SetValue(XTYPE, Convert.ChangeType(ueditVal, valtype), null);
                                break;
                        }

                        #endregion
                    }
                    else
                    {

                        //一般控件取值
                        TextBox txtControl = field_tab_content.FindControl("S_" + filed.FiledName) as TextBox;
                        if (txtControl != null)
                        {
                            var val = txtControl.Text.Trim();//txtControl.Text.Trim();
                            decimal dl = 0;
                            DateTime dt;
                            if (valtype.Name == "Decimal" || valtype.Name == "Single")
                            {
                                if (decimal.TryParse(val, out dl))
                                {
                                    val = dl.ToString();
                                    property.SetValue(XTYPE, Convert.ChangeType(val, valtype), null);
                                }
                            }
                            else if (valtype.Name == "DateTime")
                            {
                                if (DateTime.TryParse(val, out dt))
                                {
                                    val = dt.ToString();
                                    property.SetValue(XTYPE, Convert.ChangeType(val, valtype), null);
                                }

                            }
                            else
                            {
                                property.SetValue(XTYPE, Convert.ChangeType(val, valtype), null);
                            }

                        }

                    }

                }

            }
            #endregion

        }
}

需要用到的类和枚举

FiledInfo类

public class FiledInfo
    {
        /// <summary>
        /// 字段名
        /// </summary>
        public string FiledName { get; set; }
        /// <summary>
        /// 字段描述
        /// </summary>
        public string FiledDesc { get; set; }
        /// <summary>
        /// 在界面中的排序
        /// </summary>
        public double Index { get; set; }

        /// <summary>
        /// 是否只读
        /// </summary>
        [DefaultValue(false)]
        public bool Readonly { get; set; }
        /// <summary>
        /// 是否隐藏
        /// </summary>
        [DefaultValue(false)]
        public bool IsHide { get; set; }
        /// <summary>
        /// 是否占全行
        /// </summary>
        [DefaultValue(false)]
        public bool AllLine { get; set; }
        /// <summary>
        /// 是否为空
        /// </summary>
        public bool IsRequired { get; set; }
        /// <summary>
        /// 验证类型
        /// </summary>
        public VerificationStr VerificationStrType { get; set; }
        /// <summary>
        /// 提示信息
        /// </summary>
        public string errormessage { get; set; }
        /// <summary>
        /// 显示位置
        /// </summary>
        public ItemAlign itemalign { get; set; }
        /// <summary>
        /// 设置样式
        /// </summary>
        public string thisclass { get; set; }
        /// <summary>
        /// 文本框类型
        /// </summary>
        public Inputtype inputtpe { get; set; }

    }

FiledInfo

EditPageControl类

public class EditPageControl
    {/// <summary>
        /// 字段名
        /// </summary>
        public string FiledName { get; set; }

        /// <summary>
        /// 控件类型
        /// </summary>
        public ContorlType CType { get; set; }

        /// <summary>
        /// 取值
        /// </summary>
        public object Value { get; set; }
        /// <summary>
        /// 设置样式
        /// </summary>
        public string thisclass { get; set; }
    }

EditPageControl

枚举

public enum Inputtype
    {
        //,datetime-local
        text, password, datetime, date, month, time, week, number, email, url, search, tel, color
    }
    public enum ItemAlign
    {
        Left,
        Right,
        Top,
        Bottom
    }
    /// <summary>
    /// 验证
    /// </summary>
    public enum VerificationStr
    {
        /// <summary>
        /// 是否为空
        /// </summary>
        isnull,
        /// <summary>
        /// 电话号码验证
        /// </summary>
        phone,
        /// <summary>
        /// 密码验证
        /// </summary>
        password,
        /// <summary>
        /// 邮箱验证
        /// </summary>
        email,
        /// <summary>
        /// 字母和数字
        /// </summary>
        Lettersandnumbers,
        /// <summary>
        /// 字母
        /// </summary>
        Letters,
        /// <summary>
        /// 数字
        /// </summary>
        intnumbers,
        /// <summary>
        /// 浮点数
        /// </summary>
        decmilnumber,
        /// <summary>
        /// 时间验证2007-06-05 10:57:10
        /// </summary>
        checkFullTime,
        /// <summary>
        /// 时间验证 10:57:10
        /// </summary>
        checkTime,
        /// <summary>
        /// 时间验证  2007-06-05
        /// </summary>
        checkDate,
        /// <summary>
        /// 身份证号码验证
        /// </summary>
        card,
        /// <summary>
        /// 整型数据验证
        /// </summary>
        checkInteger,
        /// <summary>
        /// 固定电话号码 验证
        /// </summary>
        checkTelephone,
        /// <summary>
        /// QQ号码验证
        /// </summary>
        checkQQ,
        /// <summary>
        /// 外部链接地址验证
        /// </summary>
        checkURL,
        /// <summary>
        /// 金额类型
        /// </summary>
        isMoney
}

    public enum ContorlType
    {
        /// <summary>
        /// 下拉列表
        /// </summary>
        select,
        /// <summary>
        /// 编辑器
        /// </summary>
        uedit,
        /// <summary>
        /// 文件上传
        /// </summary>
        fileUpload,
        /// <summary>
        /// 文本域
        /// </summary>
        textarea,
        /// <summary>
        /// 复选框
        /// </summary>
        checkbox,
        /// <summary>
        /// 设置字体颜色
        /// </summary>
        FontColor,
        /// <summary>
        /// 多文件上传
        /// </summary>
        fileUploadmore
    }

枚举

可能会用到的配置文件AppSettings.config

<?xml version="1.0" encoding="utf-8"?>
<appSettings>
<!--设置自动生成表单样式-->
  <!-- <input name="S_PROJECTCODE" type="text" id="S_PROJECTCODE" tipmsg="招标项目编号" class="mediuminput">-->
  <!--mediuminput-->
  <!--bootstrap表单设置  input:form-control-->
  <!--下拉框-->
  <add key="select" value=""/>
  <!--文件上传-->
  <add key="fileUpload" value=""/>
  <!--多行文本框-->
  <add key="textarea" value=""/>
  <!--编辑器-->
  <add key="uedit" value=""/>
  <!--复选框-->
  <add key="checkbox" value=""/>
  <!--字体颜色-->
  <add key="FontColor" value=""/>
  <!--多文件上传-->
  <add key="fileUploadmore" value=""/>
  <add key="input" value=""/>
  <!--每项格式-->
  <!--<div class="listitem form-group">
    <label class="listleft titles">招标项目编号:</label>
    <div class="listleft con">
      <input name="S_PROJECTCODE" type="text" id="S_PROJECTCODE" tipmsg="招标项目编号" class="mediuminput">
    </div>
    <span style="color:red" class="errorlog">*</span>
  </div>-->
  <!--表单其他样式-->
  <add key="boxdiv" value="listitem form-group"/>
  <add key="boxChildlabel" value="listleft titles"/>
  <add key="boxChilddiv" value="listleft con"/>
  <!--bootstrap表单设置-->
  <!--<add key="boxdiv" value="form-group"/>
  <add key="boxChildlabel" value=""/>
  <add key="boxChilddiv" value="form-control"/>-->
</appSettings>

注意:代码不是很完善  对于复选框、字体颜色还需加强构思,学识不够渊博 可能写得有点烂

适合于多表多字段需要快速开发完成的项目

时间: 2024-10-10 12:52:35

webform快速创建表单内容文件--oracle 数据库的相关文章

表单内容提交到数据库案例

配置好Web.config,在configuration里面添加节点connectionStrings: <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> <connectionStrings> <add name="connstr" conne

[Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证

本文将演示如何快速实现表单是输入验证. 首先确保在项目中已经安装了所需的第三方库. 点击[Podfile],查看安装配置文件. 1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'SwiftValidator', :git => 'https://github.com/jpotts18/SwiftVali

activiti自定义流程之整合(二):使用angular js整合ueditor创建表单

注:整体环境搭建:activiti自定义流程之整合(一):整体环境配置 基础环境搭建完毕,接下来就该正式着手代码编写了,在说代码之前,我觉得有必要先说明一下activit自定义流程的操作. 抛开自定义的表单不谈,通过之前的了解,我们知道一个新的流程开始,是在启动流程实例(processIntence)的时候,而流程实例依赖于流程定义(processDefinition),流程定义又依赖于流程模型(model). 我们用到的自定义表单需要在创建模型,画模型图的时候就指定表单的名称formKey,需

activiti自己定义流程之整合(二):使用angular js整合ueditor创建表单

基础环境搭建完成,接下来就该正式着手代码编写了,在说代码之前.我认为有必要先说明一下activit自己定义流程的操作. 抛开自己定义的表单不谈.通过之前的了解,我们知道一个新的流程開始.是在启动流程实例(processIntence)的时候,而流程实例依赖于流程定义(processDefinition).流程定义又依赖于流程模型(model). 我们用到的自己定义表单须要在创建模型,画模型图的时候就指定表单的名称formKey.须要保证这个formKey和我们创建的表单名称一致. 表单并不在创建

js实现无刷新表单提交文件,将ajax请求转换为form请求方法

最近在做项目的时候遇到一个需要上传文件的需求,因为ajax请求是无法上传二进制文件流的,所以只能用form表单提交,而form提交有一个问题就是会使页面刷新,本文解决了form表单提交文件时页面刷新的问题. 一.无刷新实现form提交文件 将form的target指向为一个iframe就可以实现无刷新提交文件了,但关键是还需要看到后台返回的数据,所以还需要为该iframe注册一个回调函数,因为iframe和该页面在同域内,所以可以在iframe里可以调用该回调函数,就可以看到后台返回的数据了.实

Struts2文件上传(基于表单的文件上传)

•Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目 •Commons-FileUpload组件特点 –使用简单:可以方便地嵌入到JSP文件中,编写少量代码即可完成文件的上传功能 –能够全程控制上传内容 –能够对上传文件的大小.类型进行控制 •需要下载Common-FileUplaod框架地址(当然MyEclipce中Struts2支持里自带有这两个包): –http://jak

activiti自己定义流程之自己定义表单(二):创建表单

注:环境配置:activiti自己定义流程之自己定义表单(一):环境配置 在上一节自己定义表单环境搭建好以后,我就正式開始尝试自己创建表单,在后台的处理就比較常规,主要是针对ueditor插件的功能在前端进行改动. 因为自己的前端相关技术太渣.因此好多东西都不会用,导致改动实现的过程也是破费了一番功夫.头皮发麻了好几天. 既然是用别人的插件进行改动,那么我想假设仅仅是单独的贴出我改动后的代码,可能没有前后进行对照好理解,因此这里就把原代码和改动后的同一时候对照着贴出,以便于朋友们能从对照中更快的

activiti自定义流程之自定义表单(二):创建表单

注:环境配置:activiti自定义流程之自定义表单(一):环境配置 在上一节自定义表单环境搭建好以后,我就正式开始尝试自己创建表单,在后台的处理就比较常规,主要是针对ueditor插件的功能在前端进行修改. 由于自己的前端相关技术太渣,因此好多东西都不会用,导致修改实现的过程也是破费了一番功夫,头皮发麻了好几天. 既然是用别人的插件进行修改,那么我想如果只是单独的贴出我修改后的代码,可能没有前后进行对比好理解,因此这里就把原代码和修改后的同时对比着贴出,以便于朋友们能从对比中更快的得到启发.

SpringMVC 完美解决PUT请求参数绑定问题(普通表单和文件表单)

一 解决方案 修改web.xml配置文件 将下面配置拷贝进去(在原有的web-app节点里面配置 其它配置不变) <!-- 处理PUT提交参数(只对基础表单生效) --> <filter> <filter-name>httpPutFormContentFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filt