protected void Page_Load(object sender, EventArgs e) { //Water=False,MaxPicSize=1024,PicFileExt=jpg|png|gif|bmp|jpeg,SelUpfile=True,Compress=True DataTable dt = fieldBll.GetTableByFieldName(FieldName, ModelConfig.GetTableName((ModelConfig.SType)SType), ModelID); if (dt.Rows.Count < 1) { RepStr("[" + FieldName + "]字段不存在"); } DataRow dr = dt.Rows[0]; FieldModel fieldMod = new FieldModel(dr["Content"].ToString()); water_div.Visible = true; function.Script(this, "SetRadVal('water_rad'," + fieldMod.GetValInt("Water") + ");"); }
/// <summary> /// 仅用于添加修改文章如AddContent等, DataTable dt = this.bfield.GetModelFieldList(this.ModelID).Tables[0]; /// </summary> /// <param name="dt">模型字段列表</param> /// <param name="page">this.Page</param> /// <param name="viewState">ViewState</param> /// <param name="content">用于后台生成静态页</param> /// <param name="flag">是否需要检测空值</param> /// <param name="fields">如不为空,则非其中的字段不允许修改</param> public DataTable GetDTFromPage(DataTable dt, Page page, StateBag viewState, IList <string> content = null, bool flag = true, string fields = "") { B_ModelField mfieldBll = new B_ModelField(); dt.DefaultView.RowFilter = "IsCopy <>-1"; dt = dt.DefaultView.ToTable(); if (content == null) { content = new List <string>(); } DataTable table = new DataTable(); table.Columns.Add(new DataColumn("FieldName", typeof(string))); table.Columns.Add(new DataColumn("FieldType", typeof(string))); table.Columns.Add(new DataColumn("FieldValue", typeof(string))); table.Columns.Add(new DataColumn("FieldAlias", typeof(string))); foreach (DataRow dr in dt.Rows) { DataRow fdr = table.NewRow(); if (!string.IsNullOrEmpty(fields) && !("," + fields + ",").Contains("," + dr["FieldName"] + ",")) { continue; } try { if (dr["FieldType"].ToString() == "DoubleDateType") { fdr[0] = dr["FieldName"].ToString(); fdr[1] = "DoubleDateType"; DateTime ti1 = DataConverter.CDate(page.Request.Form["txt" + dr["FieldName"].ToString()]); DateTime ti2 = DataConverter.CDate(page.Request.Form["txt_" + dr["FieldName"].ToString()]); fdr[2] = ti1.ToShortDateString() + "|" + ti2.ToShortDateString(); fdr[3] = dr["FieldAlias"]; table.Rows.Add(fdr); } else { if (DataConverter.CBool(dr["IsNotNull"].ToString()) && flag) { if (string.IsNullOrEmpty(page.Request.Form["txt_" + dr["FieldName"].ToString()])) { function.WriteErrMsg(dr["FieldAlias"].ToString() + "不能为空!", "javascript:history.go(-1);"); } } string[] Sett = dr["Content"].ToString().Split(new char[] { ',' }); switch (dr["FieldType"].ToString()) { case "FileType": //其与MultiPicType一样,都是读页面上的隐藏控件,而非<select>中的值,存在一个隐藏字段中 #region //ChkFileSize=0,FileSizeField=,MaxFileSize=1024,UploadFileExt=rar|zip|docx|pdf:::是否保存文件大小,保存在大小的字段名,文件上传限制,上传后缀名限制 bool chksize = DataConverter.CBool(Sett[0].Split(new char[] { '=' })[1]); string sizefield = Sett[1].Split(new char[] { '=' })[1]; if (chksize && sizefield != "") { DataRow row1 = table.NewRow(); row1[0] = sizefield; row1[1] = "FileSize"; row1[2] = page.Request.Form["txt_" + sizefield]; row1[3] = dr["FieldAlias"]; table.Rows.Add(row1); } //信息由JS控制放置入txt_中 DataRow rowr1 = table.NewRow(); rowr1[0] = dr["FieldName"]; rowr1[1] = "FileType"; rowr1[2] = page.Request.Form["txt_" + dr["FieldName"]]; rowr1[3] = dr["FieldAlias"]; table.Rows.Add(rowr1); #endregion break; case "MultiPicType": #region //ChkThumb=0,ThumbField=,Warter=0,MaxPicSize=1024,PicFileExt=jpg|png|gif|bmp|jpeg:::是否保存缩略图地址,缩略点路径,水印,大小,后缀名限制 bool chkthumb = DataConverter.CBool(Sett[0].Split(new char[] { '=' })[1]); string ThumbField = Sett[1].Split(new char[] { '=' })[1]; if (chkthumb && ThumbField != "") { DataRow row2 = table.NewRow(); if (DataConverter.CBool(dr["IsNotNull"].ToString()) && string.IsNullOrEmpty(page.Request.Form["txt_" + ThumbField])) { function.WriteErrMsg(dr["FieldAlias"].ToString() + "的缩略图不能为空!"); } row2[0] = ThumbField; row2[1] = "ThumbField"; row2[2] = page.Request.Form["txt_" + ThumbField]; row2[3] = dr["FieldAlias"]; table.Rows.Add(row2); } { DataRow rowr2 = table.NewRow(); rowr2[0] = dr["FieldName"]; rowr2[1] = "MultiPicType"; rowr2[2] = page.Request.Form["txt_" + dr["FieldName"]]; rowr2[3] = dr["FieldAlias"]; table.Rows.Add(rowr2); } #endregion break; case "TableField": //库选字段 fdr[0] = dr["FieldName"].ToString(); fdr[1] = "TableField"; string tableval = page.Request.Form["txt_" + dr["FieldName"].ToString()]; if (!string.IsNullOrEmpty(tableval)) { string[] temparr = tableval.Split(','); tableval = string.Join("$", temparr); } fdr[2] = tableval; fdr[3] = dr["FieldAlias"]; table.Rows.Add(fdr); break; case "NumType": #region double value = DataConverter.CDouble(string.IsNullOrEmpty(page.Request.Form["txt_" + dr["FieldName"]]) ? "0" : page.Request.Form["txt_" + dr["FieldName"]]); //避免空字符串报错 //TitleSize=35,NumberType=1,DefaultValue=50,NumSearchType=0,NumRangType=1,NumSearchRang=0-100,NumLenght=0 string[] conArr = dr["Content"].ToString().Split(','); string NumLenght = "f" + conArr[6].Split('=')[1]; //小数点位数 if (conArr[4].Split('=')[1].Equals("1")) //指定了上限与下限检测,则检测 { string range = conArr[5].Split('=')[1]; if (!string.IsNullOrEmpty(range) && range.Split('-').Length == 2) //范围不为空,并正确填了值,才做判断 { double minValue = Convert.ToDouble(range.Split('-')[0]); double maxValue = Convert.ToDouble(range.Split('-')[1]); if (value < minValue || value > maxValue) { function.WriteErrMsg(dr["FieldAlias"] + ":的值不正确,必须大于" + minValue + ",并且小于" + maxValue); } } } fdr[0] = dr["FieldName"].ToString(); fdr[1] = "NumType"; fdr[2] = value.ToString(NumLenght); fdr[3] = dr["FieldAlias"]; table.Rows.Add(fdr); #endregion break; case "Images": //组图 fdr[0] = dr["FieldName"].ToString(); fdr[1] = "Images"; fdr[2] = (page.Request.Form["txt_" + dr["FieldName"].ToString()] ?? "").Trim(','); table.Rows.Add(fdr); break; case "CameraType": fdr[0] = dr["FieldName"].ToString(); fdr[1] = "CameraType"; fdr[2] = page.Request.Form[dr["FieldName"] + "_hid"].ToString(); table.Rows.Add(fdr); break; case "SqlType": //文件入库,图片入库,,,图片与文件base64存数据库,一个单独字段标识其 { fdr[0] = dr["FieldName"]; fdr[1] = dr["FieldType"]; fdr[2] = page.Request.Form["FIT_" + dr["FieldName"]]; fdr[3] = dr["FieldAlias"]; table.Rows.Add(fdr); } break; case "SqlFile": { fdr[0] = dr["FieldName"]; fdr[1] = dr["FieldType"]; fdr[2] = page.Request.Form["FIT_" + dr["FieldName"]]; fdr[3] = dr["FieldAlias"]; table.Rows.Add(fdr); } break; case "MapType": { fdr[0] = dr["FieldName"].ToString(); fdr[1] = "MapType"; fdr[2] = page.Request.Form["txt_" + dr["FieldName"].ToString()]; fdr[3] = dr["FieldAlias"]; table.Rows.Add(fdr); } break; case "autothumb": { FieldModel fieldMod = new FieldModel(dr["Content"].ToString()); string thumb = page.Request.Form["txt_" + dr["FieldName"].ToString()]; string topimg = page.Request.Form["ctl00$Content$ThumImg_Hid"]; thumb = ZoomLa.BLL.Helper.ThumbHelper.Thumb_Compress(topimg, thumb, fieldMod.GetValInt("width"), fieldMod.GetValInt("height")); //如thumb为空,但topimg不为空,则生成缩图 fdr[0] = dr["FieldName"].ToString(); fdr[1] = "auththumb"; fdr[2] = thumb; table.Rows.Add(fdr); } break; case "api_qq_mvs": { fdr[0] = dr["FieldName"]; fdr[1] = dr["FieldType"]; fdr[2] = page.Request.Form["UpMvs_" + dr["FieldName"].ToString()]; fdr[3] = dr["FieldAlias"]; table.Rows.Add(fdr); } break; default: #region string[] txtftype = "TextType,MultipleTextType,MultipleHtmlType,PullFileType".Split(','); //文本类型 DataRow row = table.NewRow(); row[0] = dr["FieldName"].ToString(); string ftype = dr["FieldType"].ToString(); row[1] = ftype; string fvalue = page.Request.Form["txt_" + dr["FieldName"].ToString()]; if (!string.IsNullOrEmpty(fvalue) && (txtftype.Where(p => p.Equals(ftype)).ToArray().Length > 0)) { if (ftype == "MultipleHtmlType") { content.Add(fvalue); } } switch (ftype) { case "Random": fvalue = page.Request.Form["txt_" + dr["FieldName"].ToString()]; break; case "MapType": //fvalue =; break; case "Charts": if (page.Request.Form[dr["FieldName"].ToString()] == null || page.Request.Form[dr["FieldName"].ToString()] == "0") { fvalue = "0"; } else { fvalue = page.Request.Form[dr["FieldName"].ToString()]; } break; case "SqlType": if (page.Request.Form["txt_" + dr["FieldName"].ToString()] == null || page.Request.Form["txt_" + dr["FieldName"].ToString()] == "") { fvalue = ""; } else { fvalue = page.Request.Form["txt_" + dr["FieldName"].ToString()]; } break; case "SqlFile": if (page.Request.Form["txt_" + dr["FieldName"].ToString()] == null || page.Request.Form["txt_" + dr["FieldName"].ToString()] == "") { fvalue = ""; } else { fvalue = page.Request.Form["txt_" + dr["FieldName"].ToString()]; } break; } string strUrl = HttpContext.Current.Request.Url.Authority.ToString(); string serPath = page.Request.PhysicalApplicationPath; if (SiteConfig.SiteOption.IsSaveRemoteImage) { //保存远程图片功能 if (dr["FieldName"].ToString() == "content") { //获取img路径列表 List <string> remoteImageList = mfieldBll.GetImgUrl(fvalue); fvalue = page.Request.Form["txt_content"]; foreach (string str in remoteImageList) { string imgurl = page.Request.PhysicalApplicationPath + WaterModuleConfig.WaterConfig.imgLogo; //新图片名称 string newImgname; string Patha; mfieldBll.SaveGz(str, out newImgname, out Patha, viewState["NodeDir"].ToString()); string imgInfo = ""; //保存远程图片,并获取图片详细名称 if (str.Substring(0, 7) == "http://" && !str.Contains(strUrl) && !str.Contains(SiteConfig.SiteInfo.SiteUrl)) { try { imgInfo = mfieldBll.downRemoteImg(page.Server.MapPath(Patha), str, newImgname, Patha, imgurl); fvalue = fvalue.Replace(str.ToString(), imgInfo); } catch (Exception) { imgInfo = str; fvalue = fvalue.Replace(str.ToString(), imgInfo); } } } } } row[2] = fvalue; row[3] = dr["FieldAlias"]; table.Rows.Add(row); #endregion break; } } } catch (Exception ex) { function.WriteErrMsg("自定义字段[" + dr["FieldName"] + "(" + dr["FieldType"] + ")]出错,原因:" + ex.Message); } } return(table); }