private static MvcHtmlString AppTextboxDecimalFor <TModel, TProperty>(HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, int colspan, object htmlAttributes) { ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); if (metadata.Model != null) { if (NumUtil.IsNumeric(metadata.Model)) { metadata.Model = NumUtil.FormatCurrency(NumUtil.ParseDecimal(metadata.Model.ToString()), false); } } return(AppTextFor(htmlHelper, expression, new RenderTextboxDecimal(), colspan, htmlAttributes)); }
public override string ToString() { StringBuilder builder = new StringBuilder(); using (StringWriter writer = new StringWriter(builder)) { using (HtmlTextWriter html = new HtmlTextWriter(writer)) { if (_controltype != AppControlType.Button && _controltype != AppControlType.ActionLink) { html.AddAttribute(HtmlTextWriterAttribute.Class, "row"); html.RenderBeginTag(HtmlTextWriterTag.Div); //Tag Row html.AddAttribute(HtmlTextWriterAttribute.Class, "col-md-" + _colSpan); html.RenderBeginTag(HtmlTextWriterTag.Div); //Tag Colspan html.AddAttribute(HtmlTextWriterAttribute.Class, "form-group"); html.RenderBeginTag(HtmlTextWriterTag.Div); //Tag Form Group if (_controltype == AppControlType.CheckBox) { html.AddAttribute(HtmlTextWriterAttribute.Class, "checkbox"); html.RenderBeginTag(HtmlTextWriterTag.Div); } if (_controltype == AppControlType.RadioButton) { html.AddAttribute(HtmlTextWriterAttribute.Class, "radio"); html.RenderBeginTag(HtmlTextWriterTag.Div); } if (_controltype == AppControlType.FileUpload) { html.AddAttribute(HtmlTextWriterAttribute.Class, "input-group"); html.RenderBeginTag(HtmlTextWriterTag.Div); //Tag Fileupload 1 html.AddAttribute(HtmlTextWriterAttribute.Class, "input-group-btn"); html.RenderBeginTag(HtmlTextWriterTag.Span); //Tag Fileupload 2 html.AddAttribute(HtmlTextWriterAttribute.Class, "btn btn-primary btn-file"); html.RenderBeginTag(HtmlTextWriterTag.Span); //Tag Fileupload 3 html.AddAttribute(HtmlTextWriterAttribute.Class, "fa fa-upload"); html.RenderBeginTag(HtmlTextWriterTag.I); //Tag Fileupload 4 html.RenderEndTag(); //End Tag Fileupload 4 } if (_controltype == AppControlType.GridData) { html.AddAttribute(HtmlTextWriterAttribute.Class, "table-responsive"); html.RenderBeginTag(HtmlTextWriterTag.Div);//Tag Grid Data } if (_controltype == AppControlType.TextDate) { if (!_readonly) { html.RenderBeginTag(HtmlTextWriterTag.Script); html.Write("$(function () { InitDatepickerByID('" + ID + "'); })"); html.RenderEndTag(); } } if (_controltype == AppControlType.TextTime) { if (!_readonly) { html.RenderBeginTag(HtmlTextWriterTag.Script); html.Write("$(function () { $('#" + ID + "').datetimepicker( {pickDate: false , format: 'HH:mm', pickSeconds: false, pick12HourFormat: false}) })"); html.RenderEndTag(); } } } if (_controltype != AppControlType.ValidateMessage) { this.Attributes.AddAttributes(html); html.RenderBeginTag(_tagname);//Tag Control this.RenderContents(html); } if (_controltype == AppControlType.ComboBox) { if (_options != null && _options.Count > 0) { var i = 0; foreach (var op in _options) { if (_selected != null) { if (op.Value == _selected.ToString()) { html.AddAttribute(HtmlTextWriterAttribute.Selected, "selected"); } } else { if (i == 0) { html.AddAttribute(HtmlTextWriterAttribute.Selected, "selected"); } } html.AddAttribute(HtmlTextWriterAttribute.Value, op.Value.Trim()); html.RenderBeginTag(HtmlTextWriterTag.Option); //Tag Option html.WriteEncodedText(op.Text.Trim()); html.RenderEndTag(); //End Option i++; } } } else if (_controltype == AppControlType.GridData) { if (_gridcolumnHeader != null) { html.RenderBeginTag(HtmlTextWriterTag.Thead); //Tag thead html.RenderBeginTag(HtmlTextWriterTag.Tr); //Tag Tr foreach (var col in _gridcolumnHeader) { if (col.Data_Type == GridDataType.none | col.Data_Type == GridDataType.usercontrol) { html.AddAttribute(HtmlTextWriterAttribute.Class, "no-sort"); if (!string.IsNullOrEmpty(col.Width)) { html.AddStyleAttribute(HtmlTextWriterStyle.Width, col.Width); } else { html.AddStyleAttribute(HtmlTextWriterStyle.Width, "150px"); } html.RenderBeginTag(HtmlTextWriterTag.Th);//Tag Th } else if (col.Data_Type == GridDataType.index) { html.AddAttribute(HtmlTextWriterAttribute.Class, "sort-numeric"); if (!string.IsNullOrEmpty(col.Width)) { html.AddStyleAttribute(HtmlTextWriterStyle.Width, col.Width); } else { html.AddStyleAttribute(HtmlTextWriterStyle.Width, "70px"); } html.RenderBeginTag(HtmlTextWriterTag.Th);//Tag Th } else { html.AddAttribute(HtmlTextWriterAttribute.Class, "sort-" + col.Data_Type.ToString()); if (!string.IsNullOrEmpty(col.Width)) { html.AddStyleAttribute(HtmlTextWriterStyle.Width, col.Width); } html.RenderBeginTag(HtmlTextWriterTag.Th);//Tag Th } html.WriteEncodedText(col.Column_Name.Replace("_", " ")); html.RenderEndTag(); //End Option } html.RenderEndTag(); //End Tag Tr html.RenderEndTag(); //End Tag thead html.RenderBeginTag(HtmlTextWriterTag.Tbody); //Tag Th;//Tag tbody if (_gridrows != null) { foreach (var row in _gridrows) { html.RenderBeginTag(HtmlTextWriterTag.Tr);//Tag Tr for (var i = 0; i < row.Item.Count; i++) { var item = row.Item[i]; if (_gridcolumnHeader[i].Data_Type == GridDataType.amount) { html.AddAttribute(HtmlTextWriterAttribute.Class, "text-right"); html.RenderBeginTag(HtmlTextWriterTag.Td);//Tag Td if (item.Value != null) { var amount = NumUtil.ParseDecimal(item.Value.ToString()); html.WriteEncodedText(NumUtil.FormatCurrency(amount)); } else { html.WriteEncodedText("0"); } html.RenderEndTag();//End Tag Td } else if (_gridcolumnHeader[i].Data_Type == GridDataType.index) { html.AddAttribute(HtmlTextWriterAttribute.Class, "text-center"); html.RenderBeginTag(HtmlTextWriterTag.Td);//Tag Td if (item.Value != null) { var amount = NumUtil.ParseInteger(item.Value.ToString()); html.WriteEncodedText(amount.ToString("n0")); } html.RenderEndTag();//End Tag Td } else if (_gridcolumnHeader[i].Data_Type == GridDataType.numeric) { html.AddAttribute(HtmlTextWriterAttribute.Class, "text-right"); html.RenderBeginTag(HtmlTextWriterTag.Td);//Tag Td if (item.Value != null) { var amount = NumUtil.ParseInteger(item.Value.ToString()); html.WriteEncodedText(amount.ToString("n0")); } html.RenderEndTag();//End Tag Td } else if (_gridcolumnHeader[i].Data_Type == GridDataType.usercontrol) { html.RenderBeginTag(HtmlTextWriterTag.Td);//Tag Td if (item.Value != null) { html.Write(item.Value.ToString()); } html.RenderEndTag();//End Tag Td } else { html.RenderBeginTag(HtmlTextWriterTag.Td);//Tag Td if (item.Value != null) { html.WriteEncodedText(item.Value.ToString()); } html.RenderEndTag();//End Tag Td } } html.RenderEndTag();//End Tag Tr } } html.RenderEndTag();//End Tag tbody } } if (_controltype == AppControlType.Button || _controltype == AppControlType.ActionLink || _controltype == AppControlType.Label) { if (!string.IsNullOrEmpty(_icon)) { html.AddAttribute(HtmlTextWriterAttribute.Class, _icon); html.RenderBeginTag(HtmlTextWriterTag.I); //Tag i html.RenderEndTag(); //End Tag i } if (Text != null) { html.WriteEncodedText(Text); } } if (_controltype == AppControlType.TextArea) { if (Value != null) { html.WriteEncodedText(Value.ToString()); } } if (_controltype != AppControlType.ValidateMessage) { html.RenderEndTag();//End Tag Control } if (_controltype == AppControlType.RadioButton | _controltype == AppControlType.CheckBox) { html.AddAttribute(HtmlTextWriterAttribute.For, ID); html.RenderBeginTag(HtmlTextWriterTag.Label); //Tag Radio or Check box label html.WriteEncodedText(Text); html.RenderEndTag(); //End Tag Radio or Check box label } if (this.HtmlValidateString != null) { html.AddAttribute(HtmlTextWriterAttribute.Class, "validation-error"); html.RenderBeginTag(HtmlTextWriterTag.Div); //Tag validation-error html.Write(_htmlvalidateString.ToHtmlString()); html.RenderEndTag(); //End Tag validation-error } if (_controltype != AppControlType.Button && _controltype != AppControlType.ActionLink) { if (_controltype == AppControlType.GridData) { html.RenderEndTag(); //Tag Grid data html.RenderBeginTag(HtmlTextWriterTag.Script); //Tag script var addbutton = "null"; if (_gridAddButton != null) { addbutton = _gridAddButton.ToString(); } if (!string.IsNullOrEmpty(addbutton) && addbutton != "null") { html.Write("$(function () { InitDatatable('" + ID + "', '" + addbutton + "', null); })"); } else { html.Write("$(function () { InitDatatable('" + ID + "', null, null); })"); } html.RenderEndTag(); //End script; } if (_controltype == AppControlType.FileUpload) { html.RenderEndTag(); //Tag Fileupload 1 html.RenderEndTag(); //Tag Fileupload 2 html.RenderBeginTag("input class='form-control' type='text' readonly=''"); //Tag Fileupload Text html.RenderEndTag(); //End Tag Fileupload Text html.RenderEndTag(); //Tag Fileupload 3 } if (_controltype == AppControlType.RadioButton) { html.RenderEndTag();//End Tag Radio } if (_controltype == AppControlType.CheckBox) { html.RenderEndTag(); //End Tag Check box } html.RenderEndTag(); //End Tag Form Group html.RenderEndTag(); //End Tag Colspan html.RenderEndTag(); //End Row } } } var str = builder.ToString(); if (_controltype == AppControlType.ComboBox) { Regex RegexBetweenTags = new Regex(@">(?! )\s+", RegexOptions.Compiled); Regex RegexLineBreaks = new Regex(@"([\n\s])+?(?<= {2,})<", RegexOptions.Compiled); str = RegexBetweenTags.Replace(str, ">"); str = RegexLineBreaks.Replace(str, "<"); str = Regex.Replace(str, @"\t|\n|\r", ""); str = str.Trim(); } return(str); }