Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }