Ejemplo n.º 1
0
        /// <summary>
        /// 生成时间段格式的日期选择
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TProperty"></typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="beginExpression"></param>
        /// <param name="endExpression"></param>
        /// <param name="showHHmmss"></param>
        /// <param name="beginHtmlAttributes"></param>
        /// <param name="endHtmlAttributes"></param>
        /// <returns></returns>
        public static MvcHtmlString DatePickerFor <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > beginExpression, Expression <Func <TModel, TProperty> > endExpression, bool showHHmmss = false, object beginHtmlAttributes = null, object endHtmlAttributes = null)
        {
            if (beginExpression == null)
            {
                throw new Exception("第一个属性表达式不能为空");
            }
            //第一个日期
            var beginExpressionId = ExpressionHelper.GetExpressionText(beginExpression);
            var beginTextBoxHtml  = htmlHelper.TextBoxFor(beginExpression, HtmlExtensionsTools.AddClass(beginHtmlAttributes, "Wdate"));
            //是否是单个日期
            var    singleDatePicker = endExpression == null;
            var    endTextBoxHtml   = new MvcHtmlString("");
            string endExpressionId  = "";

            if (!singleDatePicker)
            {
                //第二个日期
                endExpressionId = ExpressionHelper.GetExpressionText(endExpression);
                endTextBoxHtml  = htmlHelper.TextBoxFor(endExpression, HtmlExtensionsTools.AddClass(endHtmlAttributes, "Wdate"));
                if (beginExpressionId == endExpressionId)
                {
                    throw new Exception("开始时间属性不能和结束时间属性相同");
                }
            }
            MvcHtmlString html = singleDatePicker ? beginTextBoxHtml : new MvcHtmlString(beginTextBoxHtml.ToString() + "-" + endTextBoxHtml.ToString());

            RegistScript(singleDatePicker, showHHmmss, beginExpressionId, endExpressionId);
            return(html);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 添加选项
 /// </summary>
 /// <param name="title"></param>
 /// <param name="targetSelecter"></param>
 /// <param name="htmlAttributes"></param>
 /// <returns></returns>
 public TabBuilder AddTab(string title, string targetSelecter = null, object htmlAttributes = null)
 {
     _options.Add(new TabMenuOption()
     {
         Title          = title,
         TargetSelecter = targetSelecter,
         HtmlAttributes = HtmlExtensionsTools.ObjectToHtmlAttributes(htmlAttributes)
     });
     return(this);
 }
Ejemplo n.º 3
0
        public static MvcHtmlString TextEditorFor <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, bool useDefaultStyle = true, object htmlAttributes = null)
        {
            var id         = ExpressionHelper.GetExpressionText(expression);
            var textArea   = htmlHelper.TextAreaFor(expression);
            var divBuilder = new TagBuilder("div");

            divBuilder.MergeAttributes(HtmlExtensionsTools.ObjectToHtmlAttributes(htmlAttributes), true);
            if (useDefaultStyle)
            {
                divBuilder.AddCssClass("ckeditor");
            }
            divBuilder.InnerHtml = textArea.ToString();
            RegistScript(id);
            return(new MvcHtmlString(divBuilder.ToString()));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 添加选项
        /// </summary>
        /// <param name="targetSelecter">选项卡目标选择器 jQuery 选择器</param>
        /// <param name="value">选项卡选项值</param>
        /// <param name="htmlAttributes">选项卡选项属性</param>
        /// <returns></returns>
        public Global_TabMenu AddOption(string targetSelecter, string value, object htmlAttributes = null)
        {
            var option = new TabMenuOption()
            {
                TargetSelecter = targetSelecter,
                Value          = value,
                HtmlAttributes = HtmlExtensionsTools.ObjectToHtmlAttributes(htmlAttributes)
            };

            if (this.Options == null)
            {
                this.Options = new List <TabMenuOption>();
            }
            this.Options.Add(option);
            return(this);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 生成选项卡结构
        /// </summary>
        /// <param name="styleName"></param>
        /// <param name="htmlAttributes"></param>
        /// <returns></returns>
        public MvcHtmlString TabMenu(Global_TabMenu menus, string styleName, object htmlAttributes = null)
        {
            //外层DIV
            var divBuilder = new TagBuilder("div");

            divBuilder.AddCssClass(styleName);
            divBuilder.MergeAttribute("data-type", "cms-tabselect", true);
            divBuilder.MergeAttributes(HtmlExtensionsTools.ObjectToHtmlAttributes(htmlAttributes), true);
            var id = Guid.NewGuid().ToString("N");

            //divBuilder.GenerateId();有BUG,有时页面没有生成ID
            divBuilder.MergeAttribute("id", id, true);
            //UL
            var ulBuilder = new TagBuilder("ul");
            var options   = menus.Options.ToArray();

            for (int i = 0; i < options.Length; i++)
            {
                var option = options[i];
                if (string.IsNullOrEmpty(option.TargetSelecter))
                {
                    throw new Exception(string.Format("第{0}个选项目标选择器不能为空", i + 1));
                }
                if (string.IsNullOrEmpty(option.Value))
                {
                    throw new Exception(string.Format("第{0}个选项值不能为空", i + 1));
                }
                var optionBuilder = new TagBuilder("li");
                optionBuilder.MergeAttribute("data-href", option.TargetSelecter, true);
                optionBuilder.SetInnerText(option.Value);
                optionBuilder.MergeAttributes(option.HtmlAttributes, true);
                ulBuilder.InnerHtml += optionBuilder.ToString();
            }
            divBuilder.InnerHtml = ulBuilder.ToString();
            RegistScript(id, menus);
            return(new MvcHtmlString(divBuilder.ToString()));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 生成选项卡结构
        /// </summary>
        /// <returns></returns>
        private string BuildTabMenu()
        {
            //外层DIV
            var    divBuilder  = new TagBuilder("div");
            string styleString = _attribute.Style == TabMenuStyle.Custom ? _attribute.CustomStyle : Enum.GetName(typeof(TabMenuStyle), _attribute.Style);

            divBuilder.AddCssClass(styleString);
            //divBuilder.MergeAttribute("data-type", "cms-tabselect", true);
            divBuilder.MergeAttributes(HtmlExtensionsTools.ObjectToHtmlAttributes(_attribute.HtmlAttributes), true);
            var id = Guid.NewGuid().ToString("N");

            //divBuilder.GenerateId();有BUG,有时页面没有生成ID
            divBuilder.MergeAttribute("id", id, true);
            //UL
            var ulBuilder = new TagBuilder("ul");

            foreach (var option in _options)
            {
                if (string.IsNullOrEmpty(option.TargetSelecter))
                {
                    throw new Exception(string.Format("第{0}个选项目标选择器不能为空", 1));
                }
                if (string.IsNullOrEmpty(option.Title))
                {
                    throw new Exception(string.Format("第{0}个选项值不能为空", 1));
                }
                var optionBuilder = new TagBuilder("li");
                optionBuilder.MergeAttribute("data-href", option.TargetSelecter, true);
                optionBuilder.SetInnerText(option.Title);
                optionBuilder.MergeAttributes(option.HtmlAttributes, true);
                ulBuilder.InnerHtml += optionBuilder.ToString();
            }
            divBuilder.InnerHtml = ulBuilder.ToString();
            RegistScript(id);
            return(divBuilder.ToString());
        }