예제 #1
0
        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") + ");");
        }
예제 #2
0
    /// <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);
    }