public static MvcHtmlString ExtDisplayNumberFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, NumberOptionLarge option = null, object htmlAttributes = null) { var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.ExtDisplayWidthId(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); if (html.ContainsKey("id")) { var tempId = html["id"].ToString(); if (!string.IsNullOrEmpty(tempId)) { controlId = tempId; } } stringBuilder.AppendLine("<script>$(function(){"); var options = new List <string>() { "aSep: ','", "aDec: '.'" }; if (option != null) { if (option.Min.HasValue) { options.Add($"vMin: '{option.Min.Value}'"); } if (option.Max.HasValue) { options.Add($"vMax: '{option.Max.Value}'"); } if (!string.IsNullOrEmpty(option.ASign)) { options.Add($"aSign: '{option.ASign}'"); } if (!string.IsNullOrEmpty(option.PSign)) { options.Add($"pSign: '{option.PSign}'"); } if (option.NumberOfDecimal.HasValue) { options.Add($"mDec : {option.NumberOfDecimal.Value}"); } if (!option.APad) { options.Add($"aPad : {Convert.ToBoolean("false")}"); } } var optionsStr = string.Join(", ", options); stringBuilder.AppendLine($"$('#{controlId}').autoNumeric('init', {{{optionsStr}}});"); stringBuilder.AppendLine("});</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public ISwModelViewTab <TControl> CreateDocumentTab <TControl>(ISwDocument doc) { var mdlViewMgr = doc.Model.ModelViewManager; return(CustomControlHelper.HostControl <TControl, SwModelViewTab <TControl> >( (c, h, t, _) => { if (mdlViewMgr.DisplayWindowFromHandlex64(t, h.Handle.ToInt64(), true)) { return new SwModelViewTab <TControl>(c, t, mdlViewMgr, (SwDocument)doc, Logger); } else { throw new NetControlHostException(h.Handle); } }, (p, t, _) => { var ctrl = (TControl)mdlViewMgr.AddControl3(t, p, "", true); if (ctrl == null) { throw new ComControlHostException(p); } return new SwModelViewTab <TControl>(ctrl, t, mdlViewMgr, (SwDocument)doc, Logger); })); }
public static MvcHtmlString ExtCheckBoxFor <TModel>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, bool> > expression, object htmlAttributes = null, string checkboxText = null, string selectfontweight = null, string tooltip = null) { var labelBuilder = new TagBuilder("label") { InnerHtml = htmlHelper.CheckBoxFor(expression, htmlAttributes).ToString() }; if (!string.IsNullOrEmpty(checkboxText)) { labelBuilder.InnerHtml += checkboxText; labelBuilder.Attributes["style"] = "font-weight: normal"; } if (!string.IsNullOrEmpty(selectfontweight) && selectfontweight == "bold") { labelBuilder.Attributes["style"] = "font-weight: bold"; } if (!string.IsNullOrEmpty(tooltip)) { labelBuilder.Attributes["title"] = tooltip; } var divBuilder = new TagBuilder("div") { InnerHtml = labelBuilder.ToString() }; //divBuilder.AddCssClass("checkbox"); var stringBuilder = new StringBuilder(); stringBuilder.Append(divBuilder); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtNumberFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, NumberOption option = null, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); var maxLength = expression.MaxLength(); html = HtmlAttributeHelper.AddMaxLength(html, maxLength != 0 ? maxLength : 255); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.TextBoxFor(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); stringBuilder.AppendLine("<script>$(function(){"); var options = new List <string>() { "aSep: ''", "aDec: '.'" }; if (option != null) { if (option.Min.HasValue) { options.Add($"vMin: '{option.Min.Value}'"); } if (option.Max.HasValue) { options.Add($"vMax: '{option.Max.Value}'"); } if (!string.IsNullOrEmpty(option.ASign)) { options.Add($"aSign: '{option.ASign}'"); } if (!string.IsNullOrEmpty(option.PSign)) { options.Add($"pSign: '{option.PSign}'"); } if (!string.IsNullOrEmpty(option.MRound)) { options.Add($"mRound: '{option.MRound}'"); } if (option.NumberOfDecimal.HasValue) { options.Add($"mDec : {option.NumberOfDecimal.Value}"); } if (!option.APad) { options.Add("aPad : false"); } } var optionsStr = string.Join(", ", options); stringBuilder.AppendLine($"$('#{controlId}').autoNumeric('init', {{{optionsStr}}});"); stringBuilder.AppendLine("});</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtDropDownListFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, IEnumerable <SelectListItem> selectList, string optionLabel = null, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, htmlHelper.DropDownListFor(expression, selectList, optionLabel, html).ToString(), expression)); }
private static MvcHtmlString ExtCheckBoxListSingleColumnFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, IEnumerable <SelectListItem> values, IEnumerable <TValue> selectedIds, object htmlAttributes = null) { var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var selectedValues = selectedIds.Select(x => x.ToString()).ToList(); var variableName = ExpressionHelper.GetExpressionText(expression); var stringBuilder = new StringBuilder(); foreach (var selectListItem in values) { var itemName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(variableName); var itemId = itemName + CustomControlHelper.GetControlCount(itemName); var divBuilder = new TagBuilder("div"); divBuilder.AddCssClass("checkbox"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } var labelBuilder = new TagBuilder("label"); labelBuilder.MergeAttribute("for", itemId); var inputBuilder = new TagBuilder("input"); if (selectedValues.Contains(selectListItem.Value)) { inputBuilder.MergeAttribute("checked", "checked"); } if (isDisabled) { inputBuilder.MergeAttribute("disabled", "disabled"); } inputBuilder.MergeAttribute("id", itemId); inputBuilder.MergeAttribute("name", itemName); inputBuilder.MergeAttribute("type", "checkbox"); inputBuilder.MergeAttribute("value", selectListItem.Value); var labelInner = inputBuilder + selectListItem.Text; labelBuilder.InnerHtml = labelInner; divBuilder.InnerHtml = labelBuilder.ToString(); stringBuilder.Append(divBuilder); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtTextBoxFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, object htmlAttributes = null, string format = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); var maxLength = expression.MaxLength(); html = HtmlAttributeHelper.AddMaxLength(html, maxLength != 0 ? maxLength : 255); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, !string.IsNullOrEmpty(format) ? htmlHelper.TextBoxFor(expression, format, html).ToString() : htmlHelper.TextBoxFor(expression, html).ToString(), expression)); }
public static MvcHtmlString ExtTextAreaFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); html = HtmlAttributeHelper.AddTextAreaStyle(html); var maxLength = expression.MaxLength(); if (maxLength != 0) { html = HtmlAttributeHelper.AddMaxLength(html, maxLength); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, htmlHelper.TextAreaFor(expression, html).ToString(), expression)); }
public ISwFeatureMgrTab <TControl> CreateFeatureManagerTab <TControl>(ISwDocument doc) { var mdlViewMgr = doc.Model.ModelViewManager; using (var iconsConv = m_SvcProvider.GetService <IIconsCreator>()) { return(CustomControlHelper.HostControl <TControl, SwFeatureMgrTab <TControl> >( (c, h, t, i) => { var imgPath = iconsConv.ConvertIcon(new FeatMgrViewIcon(i)).First(); var featMgr = mdlViewMgr.CreateFeatureMgrWindowFromHandlex64( imgPath, h.Handle.ToInt64(), t, (int)swFeatMgrPane_e.swFeatMgrPaneBottom) as IFeatMgrView; if (featMgr != null) { return new SwFeatureMgrTab <TControl>(c, featMgr, (SwDocument)doc, Logger); } else { throw new NetControlHostException(h.Handle); } }, (p, t, i) => { var imgPath = iconsConv.ConvertIcon(new FeatMgrViewIcon(i)).First(); var featMgr = mdlViewMgr.CreateFeatureMgrControl3(imgPath, p, "", t, (int)swFeatMgrPane_e.swFeatMgrPaneBottom) as IFeatMgrView; TControl ctrl = default; if (featMgr != null) { ctrl = (TControl)featMgr.GetControl(); } if (ctrl == null) { throw new ComControlHostException(p); } return new SwFeatureMgrTab <TControl>(ctrl, featMgr, (SwDocument)doc, Logger); })); } }
protected override PropertyManagerPageCustomControl CreateControl( IPropertyManagerPageWindowFromHandle swCtrl, IAttributeSet atts, SwPropertyManagerPageHandler handler, short height) { if (height <= 0) { height = 50; } swCtrl.Height = height; var ctrlType = atts.Get <CustomControlAttribute>().ControlType; var ctrlFact = new Func <IXCustomControl>(() => CustomControlHelper.HostControl(ctrlType, (c, h, t, _) => { if (swCtrl.SetWindowHandlex64(h.Handle.ToInt64())) { if (c is IXCustomControl) { return((IXCustomControl)c); } else { if (c is System.Windows.FrameworkElement) { return(new WpfCustomControl((System.Windows.FrameworkElement)c, h)); } throw new NotSupportedException($"'{c.GetType()}' must implement '{typeof(IXCustomControl).FullName}' or inherit '{typeof(System.Windows.FrameworkElement).FullName}'"); } } else { throw new NetControlHostException(h.Handle); } }, (p, t, _) => { throw new NotImplementedException("ActiveX controls are not implemented yet"); })); return(new PropertyManagerPageCustomControl(atts.Id, atts.Tag, swCtrl, handler, ctrlFact)); }
public static MvcHtmlString ExtEditorFullFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, bool readOnly = false, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); html = HtmlAttributeHelper.AddTextAreaStyle(html); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.TextAreaFor(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); stringBuilder.AppendLine("<script>"); stringBuilder.AppendLine(readOnly ? $"CKEDITOR.replace('{controlId}', {{ readOnly: true }})" : $"CKEDITOR.replace('{controlId}')"); stringBuilder.AppendLine("</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public ISwTaskPane <TControl> CreateTaskPane <TControl>(TaskPaneSpec spec) { if (spec == null) { spec = new TaskPaneSpec(); } ITaskpaneView CreateTaskPaneView(IIconsCreator iconConv, IXImage icon, string title) { if (icon == null) { if (spec.Icon != null) { icon = spec.Icon; } } if (string.IsNullOrEmpty(title)) { if (spec != null) { title = spec.Title; } } if (Application.Sw.SupportsHighResIcons(CompatibilityUtils.HighResIconsScope_e.TaskPane)) { string[] taskPaneIconImages = null; if (icon != null) { taskPaneIconImages = iconConv.ConvertIcon(new TaskPaneHighResIcon(icon)); } return(Application.Sw.CreateTaskpaneView3(taskPaneIconImages, title)); } else { var taskPaneIconImage = ""; if (icon != null) { taskPaneIconImage = iconConv.ConvertIcon(new TaskPaneIcon(icon)).First(); } return(Application.Sw.CreateTaskpaneView2(taskPaneIconImage, title)); } } using (var iconConv = m_SvcProvider.GetService <IIconsCreator>()) { var taskPane = CustomControlHelper.HostControl <TControl, SwTaskPane <TControl> >( (c, h, t, i) => { var v = CreateTaskPaneView(iconConv, i, t); if (!v.DisplayWindowFromHandle(h.Handle.ToInt32())) { throw new NetControlHostException(h.Handle); } return(new SwTaskPane <TControl>(Application.Sw, v, c, spec, m_SvcProvider)); }, (p, t, i) => { var v = CreateTaskPaneView(iconConv, i, t); var ctrl = (TControl)v.AddControl(p, ""); if (ctrl == null) { throw new ComControlHostException(p); } return(new SwTaskPane <TControl>(Application.Sw, v, ctrl, spec, m_SvcProvider)); }); m_Disposables.Add(taskPane); return(taskPane); } }
public static MvcHtmlString ExtMultiSuggestionFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, MultiSuggestionOption option, object htmlAttributes = null) { var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(htmlHelper.TextBoxFor(expression, html).ToString()); var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); stringBuilder.AppendLine("<script>$(function(){"); stringBuilder.AppendLine($"$('#{controlId}').tokenInput('{option.SearchUrl}',{{"); stringBuilder.AppendLine("theme: 'facebook',"); if (option.LimitedItem != 0) { stringBuilder.AppendLine($"tokenLimit: {option.LimitedItem},"); } stringBuilder.AppendLine("method: 'POST',"); stringBuilder.AppendLine("queryParam: 'query',"); stringBuilder.AppendLine("tokenValue: 'Id',"); stringBuilder.AppendLine($"required: {expression.IsRequired().ToString().ToLower()},"); stringBuilder.AppendLine("propertyToSearch: 'Name',"); stringBuilder.AppendLine("preventDuplicates: true,"); stringBuilder.AppendLine("minChars: " + option.MinChars + ","); if (option.DefaultValues != null) { stringBuilder.AppendLine( $"prePopulate: {JsonConvert.SerializeObject(option.DefaultValues).Replace("/", "\\/")},"); } if (!string.IsNullOrEmpty(option.OnAdd)) { stringBuilder.AppendLine($"onAdd: {option.OnAdd},"); } if (!string.IsNullOrEmpty(option.OnDelete)) { stringBuilder.AppendLine($"onDelete: {option.OnDelete},"); } if (!string.IsNullOrEmpty(option.AdditionalParam)) { stringBuilder.AppendLine($"additionalParam: {option.AdditionalParam},"); } if (option.LocalData != null) { stringBuilder.AppendLine( $"local_data: {JsonConvert.SerializeObject(option.LocalData)},"); } if (option.CreateNew.HasValue) { stringBuilder.AppendLine($"createNew: {option.CreateNew.Value.ToString().ToLower()},"); } if (!string.IsNullOrEmpty(option.OnResult)) { stringBuilder.AppendLine($"onResult: {option.OnResult},"); } stringBuilder.AppendLine("});});</script>"); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtCheckBoxListFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, IEnumerable <SelectListItem> values, IEnumerable <TValue> selectedIds, int columnNumber = 1, object htmlAttributes = null) { if (columnNumber <= 1) { return(htmlHelper.ExtCheckBoxListSingleColumnFor(expression, values, selectedIds, htmlAttributes)); } var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var variableName = ExpressionHelper.GetExpressionText(expression); var itemName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(variableName); var selectedValues = selectedIds.Select(x => x.ToString()).ToList(); var selectListItems = values.ToList(); var rowNumber = selectListItems.Count / columnNumber + 1; var tableBuilder = new TagBuilder("table"); for (var rowIndex = 0; rowIndex < rowNumber; rowIndex++) { var trBuilder = new TagBuilder("tr"); for (var columnIndex = 0; columnIndex < columnNumber; columnIndex++) { var itemIndex = rowIndex * columnNumber + columnIndex; if (itemIndex >= selectListItems.Count) { break; } var itemId = itemName + CustomControlHelper.GetControlCount(itemName); var inputBuilder = new TagBuilder("input"); inputBuilder.MergeAttribute("id", itemId); inputBuilder.MergeAttribute("name", itemName); inputBuilder.MergeAttribute("type", "checkbox"); inputBuilder.MergeAttribute("value", selectListItems[itemIndex].Value); if (selectedValues.Contains(selectListItems[itemIndex].Value)) { inputBuilder.MergeAttribute("checked", "checked"); } if (isDisabled) { inputBuilder.MergeAttribute("disabled", "disabled"); } var labelInner = inputBuilder + selectListItems[itemIndex].Text; var labelBuilder = new TagBuilder("label"); labelBuilder.MergeAttribute("for", itemId); labelBuilder.InnerHtml = labelInner; var divBuilder = new TagBuilder("div"); //divBuilder.AddCssClass("checkbox"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } divBuilder.InnerHtml = labelBuilder.ToString(); var tdBuilder = new TagBuilder("td") { InnerHtml = divBuilder.ToString() }; trBuilder.InnerHtml += tdBuilder.ToString(); } tableBuilder.InnerHtml += trBuilder.ToString(); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, tableBuilder.ToString(), expression)); }
public static MvcHtmlString ExtRadioButtonFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, IEnumerable <SelectListItem> values, object htmlAttributes = null, bool isInline = false, int size = 1) { var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var stringBuilder = new StringBuilder(); if (isInline) { foreach (var selectListItem in values) { var input = htmlHelper.RadioButtonFor(expression, selectListItem.Value, html); var label = selectListItem.Text; var divBuilder = new TagBuilder("div"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } divBuilder.AddCssClass("col-xs-" + size); divBuilder.InnerHtml = input + label; stringBuilder.Append(divBuilder); } } else { foreach (var selectListItem in values) { var input = htmlHelper.RadioButtonFor(expression, selectListItem.Value, html); var label = selectListItem.Text; var labelBuilder = new TagBuilder("label") { InnerHtml = input + label }; var divBuilder = new TagBuilder("div"); divBuilder.AddCssClass("radio"); if (isDisabled) { divBuilder.AddCssClass("disabled"); } divBuilder.InnerHtml = labelBuilder.ToString(); stringBuilder.Append(divBuilder); } } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtMultiSelectFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, IEnumerable <TValue> > > expression, IEnumerable <SelectListItem> values, IEnumerable <TValue> selectedIds, string controlId, object htmlAttributes = null) { var isDisabled = false; var html = htmlAttributes == null ? new RouteValueDictionary() : new RouteValueDictionary(htmlAttributes); if (html["disabled"] != null && html["disabled"].ToString() == "disabled") { isDisabled = true; } var selectListItems = values.ToList(); var leftListBuilder = new TagBuilder("select"); leftListBuilder.AddCssClass("form-control"); leftListBuilder.MergeAttribute("name", "leftList" + CustomControlHelper.GetControlCount("leftList")); leftListBuilder.MergeAttribute("id", controlId + "_from"); leftListBuilder.MergeAttribute("size", "8"); leftListBuilder.MergeAttribute("multiple", "multiple"); if (isDisabled) { leftListBuilder.MergeAttribute("disabled", "disabled"); } foreach (var selectListItem in selectListItems) { var optionBuilder = new TagBuilder("option"); optionBuilder.MergeAttribute("value", selectListItem.Value); optionBuilder.SetInnerText(selectListItem.Text); leftListBuilder.InnerHtml += optionBuilder.ToString(); } var leftColumnBuilder = new TagBuilder("div"); leftColumnBuilder.AddCssClass("col-xs-5"); leftColumnBuilder.InnerHtml = leftListBuilder.ToString(); var rightAllIconBuilder = new TagBuilder("i"); rightAllIconBuilder.AddCssClass("glyphicon"); rightAllIconBuilder.AddCssClass("glyphicon-forward"); var rightAllButtonBuilder = new TagBuilder("button"); rightAllButtonBuilder.MergeAttribute("type", "button"); rightAllButtonBuilder.MergeAttribute("id", controlId + "_rightAll"); rightAllButtonBuilder.AddCssClass("btn"); rightAllButtonBuilder.AddCssClass("btn-block"); rightAllButtonBuilder.InnerHtml = rightAllIconBuilder.ToString(); var rightSelectedIconBuilder = new TagBuilder("i"); rightSelectedIconBuilder.AddCssClass("glyphicon"); rightSelectedIconBuilder.AddCssClass("glyphicon-chevron-right"); var rightSelectedButtonBuilder = new TagBuilder("button"); rightSelectedButtonBuilder.MergeAttribute("type", "button"); rightSelectedButtonBuilder.MergeAttribute("id", controlId + "_rightSelected"); rightSelectedButtonBuilder.AddCssClass("btn"); rightSelectedButtonBuilder.AddCssClass("btn-block"); rightSelectedButtonBuilder.InnerHtml = rightSelectedIconBuilder.ToString(); var leftSelectedIconBuilder = new TagBuilder("i"); leftSelectedIconBuilder.AddCssClass("glyphicon"); leftSelectedIconBuilder.AddCssClass("glyphicon-chevron-left"); var leftSelectedButtonBuilder = new TagBuilder("button"); leftSelectedButtonBuilder.MergeAttribute("type", "button"); leftSelectedButtonBuilder.MergeAttribute("id", controlId + "_leftSelected"); leftSelectedButtonBuilder.AddCssClass("btn"); leftSelectedButtonBuilder.AddCssClass("btn-block"); leftSelectedButtonBuilder.InnerHtml = leftSelectedIconBuilder.ToString(); var leftAllIconBuilder = new TagBuilder("i"); leftAllIconBuilder.AddCssClass("glyphicon"); leftAllIconBuilder.AddCssClass("glyphicon-backward"); var leftAllButtonBuilder = new TagBuilder("button"); leftAllButtonBuilder.MergeAttribute("type", "button"); leftAllButtonBuilder.MergeAttribute("id", controlId + "_leftAll"); leftAllButtonBuilder.AddCssClass("btn"); leftAllButtonBuilder.AddCssClass("btn-block"); leftAllButtonBuilder.InnerHtml = leftAllIconBuilder.ToString(); if (isDisabled) { rightAllButtonBuilder.AddCssClass("disabled"); rightSelectedButtonBuilder.AddCssClass("disabled"); leftSelectedButtonBuilder.AddCssClass("disabled"); leftAllButtonBuilder.AddCssClass("disabled"); rightAllButtonBuilder.MergeAttribute("disabled", "disabled"); rightSelectedButtonBuilder.MergeAttribute("disabled", "disabled"); leftSelectedButtonBuilder.MergeAttribute("disabled", "disabled"); leftAllButtonBuilder.MergeAttribute("disabled", "disabled"); } var middleColumnBuilder = new TagBuilder("div"); middleColumnBuilder.AddCssClass("col-xs-2"); middleColumnBuilder.InnerHtml += rightAllButtonBuilder.ToString(); middleColumnBuilder.InnerHtml += rightSelectedButtonBuilder.ToString(); middleColumnBuilder.InnerHtml += leftSelectedButtonBuilder.ToString(); middleColumnBuilder.InnerHtml += leftAllButtonBuilder.ToString(); var variableName = ExpressionHelper.GetExpressionText(expression); var itemName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(variableName); var rightListBuilder = new TagBuilder("select"); rightListBuilder.AddCssClass("form-control"); rightListBuilder.MergeAttribute("name", itemName); rightListBuilder.MergeAttribute("id", controlId + "_to"); rightListBuilder.MergeAttribute("size", "8"); rightListBuilder.MergeAttribute("multiple", "multiple"); if (isDisabled) { rightListBuilder.MergeAttribute("disabled", "disabled"); } foreach (var selectedId in selectedIds) { var selectedItem = selectListItems.FirstOrDefault(x => x.Value == selectedId.ToString()); if (selectedItem == null) { continue; } var optionBuilder = new TagBuilder("option"); optionBuilder.MergeAttribute("value", selectedItem.Value); optionBuilder.SetInnerText(selectedItem.Text); rightListBuilder.InnerHtml += optionBuilder.ToString(); } var rightColumnBuilder = new TagBuilder("div"); rightColumnBuilder.AddCssClass("col-xs-5"); rightColumnBuilder.InnerHtml = rightListBuilder.ToString(); var rowBuilder = new TagBuilder("div"); rowBuilder.AddCssClass("row"); rowBuilder.InnerHtml = leftColumnBuilder.ToString(); rowBuilder.InnerHtml += middleColumnBuilder.ToString(); rowBuilder.InnerHtml += rightColumnBuilder.ToString(); var scriptBuilder = new TagBuilder("script"); scriptBuilder.MergeAttribute("type", "text/javascript"); scriptBuilder.InnerHtml = "jQuery(document).ready(function($) { $('#" + controlId + "').multiselect(); });"; var stringBuilder = new StringBuilder(); stringBuilder.AppendLine(rowBuilder.ToString()); stringBuilder.AppendLine(scriptBuilder.ToString()); return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }
public static MvcHtmlString ExtDateTimeFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, DateTimeOption option = null, object htmlAttributes = null) { var html = HtmlAttributeHelper.AddDefaultClass(htmlAttributes); // html.Add("onkeydown", "return false"); var maxLength = expression.MaxLength(); if (maxLength != 0) { html = HtmlAttributeHelper.AddMaxLength(html, maxLength); } else { html = HtmlAttributeHelper.AddMaxLength(html, 255); } var controlId = HtmlAttributeHelper.GetControlIdFromExpression(expression); var stringBuilder = new StringBuilder(); stringBuilder.AppendLine("<div class='input-group date ' id='dv" + controlId + "'>"); stringBuilder.AppendLine(htmlHelper.TextBoxFor(expression, html).ToString()); var options = new List <string>(); if (option != null) { if (!string.IsNullOrEmpty(option.ViewMode)) { options.Add(string.Format("viewMode: '{0}'", option.ViewMode)); } if (!string.IsNullOrEmpty(option.Format)) { options.Add(string.Format("format: '{0}'", option.Format)); if (option.Format == "LT" || option.Format == "HH:mm" || option.Format == "HH:mm:ss") { stringBuilder.AppendLine("<span class='input-group-addon'><span class='glyphicon glyphicon-time'></span></span>"); } else { stringBuilder.AppendLine("<span class='input-group-addon'><span class='glyphicon glyphicon-calendar'></span></span>"); } } if (option.DaysOfWeekDisabled != null) { options.Add(string.Format("daysOfWeekDisabled: {0}", option.DaysOfWeekDisabled)); } if (!string.IsNullOrEmpty(option.MinDate)) { options.Add(string.Format("minDate: {0}", option.MinDate)); } else { options.Add(string.Format("minDate: {0}", " moment('01/01/1990')")); } if (!string.IsNullOrEmpty(option.MaxDate)) { options.Add(string.Format("maxDate: {0}", option.MaxDate)); } if (option.EnabledHours.HasValue) { options.Add(string.Format("enabledHours : '{0}'", option.EnabledHours.Value)); } if (option.ViewDate.HasValue) { options.Add(string.Format("viewDate : {0}", option.ViewDate.Value)); } if (option.Inline.HasValue) { options.Add(string.Format("inline : {0}", option.Inline.Value)); } // options.Add(string.Format("defaultDate:{0}", DateTime.Now.ToString("d"))); } stringBuilder.AppendLine("</div><script>$(function(){"); var optionsStr = string.Join(", ", options); stringBuilder.AppendLine(string.Format("$('#dv{0}').datetimepicker( {{{1}}});", controlId, optionsStr)); //stringBuilder.AppendLine(string.Format("$('#{0}').datetimepicker('setDate',{1});", controlId,string.Format( "$('#{0}').val()",controlId))); stringBuilder.AppendLine("});</script>"); if (option != null && option.IsValidationMessageSupported) { return(new MvcHtmlString(stringBuilder.ToString())); } return(CustomControlHelper.GenerateWithValidationMessage(htmlHelper, stringBuilder.ToString(), expression)); }