Ejemplo n.º 1
0
 public string Render(TableSettings <T> data)
 {
     // 初始化基本信息
     _id = string.IsNullOrEmpty(data.GridId)
                   ? string.Format("FlexiGrid_{0}", Guid.NewGuid().ToString("N"))
                   : data.GridId;
     using (var sw = new StringWriter())
     {
         using (var writer = new HtmlTextWriter(sw))
         {
             //创建Table
             writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
             writer.AddAttribute(HtmlTextWriterAttribute.Id, _id);
             writer.RenderBeginTag(HtmlTextWriterTag.Table);
             writer.RenderEndTag();
             if (!data.EnableDefaultPager && !string.IsNullOrEmpty(data.PageFilter))
             {
                 //添加显示分页的HTML
                 if (data.PageFilter.StartsWith("#"))
                 {
                     writer.AddAttribute(HtmlTextWriterAttribute.Id, data.PageFilter.Substring(1));
                 }
                 if (data.PageFilter.StartsWith("."))
                 {
                     writer.AddAttribute(HtmlTextWriterAttribute.Class, data.PageFilter.Substring(1));
                 }
                 writer.RenderBeginTag(HtmlTextWriterTag.Div);
                 writer.RenderEndTag();
             }
             // 创建Script标签
             writer.AddAttribute(HtmlTextWriterAttribute.Type, @"text/javascript");
             writer.RenderBeginTag(HtmlTextWriterTag.Script);
             writer.Write(GenerateJavascript(data));
             writer.RenderEndTag();
         }
         return(sw.ToString());
     }
 }
Ejemplo n.º 2
0
        //生成Javascript,此Javascript加以作用域控制
        private string GenerateJavascript(TableSettings <T> data)
        {
            var sb = new StringBuilder();

            sb.Append("(function(){").Append("var cols=[");
            int count      = 0;
            int totalCount = data.GridColumns.Count;

            //生成列
            foreach (Column column in data.GridColumns)
            {
                count++;
                sb.Append("{");
                if (!string.IsNullOrEmpty(column.FieldName))
                {
                    sb.AppendFormat("name:'{0}',", column.FieldName);
                }
                if (column.ColumnSettings.ColumnWidth > 0)
                {
                    sb.AppendFormat("width:{0},", column.ColumnSettings.ColumnWidth);
                }
                if (column.ColumnSettings.ColumnSortable)
                {
                    sb.Append("sortable:true,");
                }
                if (column.ColumnSettings.ColumnAlignment != 0)
                {
                    sb.AppendFormat("align:'{0}',", column.ColumnSettings.ColumnAlignment.GetDescription());
                }
                if (column.ColumnSettings.ColumnHidden)
                {
                    sb.Append("hide:true,");
                }
                if (!string.IsNullOrEmpty(column.ColumnSettings.ColumnTemplate) ||
                    !string.IsNullOrEmpty(column.ColumnSettings.ColumnJavascript))
                {
                    sb.Append("process:function(e,c){");
                    if (!string.IsNullOrEmpty(column.ColumnSettings.ColumnTemplate))
                    {
                        sb.AppendFormat("$(e).html(\"\").append('{0}',c);",
                                        column.ColumnSettings.ColumnTemplate.Trim()
                                        .Replace("\\'", "'")
                                        .Replace("'", "\\\\\\'"));
                    }
                    sb.Append(column.ColumnSettings.ColumnJavascript);
                    sb.Append("},");
                }
                sb.AppendFormat("display:'{0}'", column.ColumnSettings.ColumnTitle).Append("}");
                if (count < totalCount)
                {
                    sb.AppendLine(",");
                }
            }
            sb.AppendLine("];");
            sb.AppendFormat(@"$('#{0}').gridext('{1}',cols,'{2}',{3},",
                            _id, data.ActionUrl, data.MenuId, data.MenuProcess ?? "null")
            .Append("{");
            if (data.EnableDefaultPager)
            {
                sb.Append("usedefalutpager:true,");
            }
            if (!string.IsNullOrEmpty(data.PageFilter))
            {
                sb.AppendFormat("pager:'{0}',", data.PageFilter);
            }
            if (data.EnableAutoLoad)
            {
                sb.Append("autoload:true,");
            }
            if (data.GridWidth > 0)
            {
                sb.AppendFormat("height:{0},", data.GridHeight);
            }
            if (!string.IsNullOrEmpty(data.GridTitle))
            {
                sb.AppendFormat("title:'{0}',", data.GridTitle);
            }
            if (data.ColMove)
            {
                sb.Append("colMove:true,");
            }
            if (data.ColResize)
            {
                sb.Append("colResize:true,");
            }
            if (data.GridDataType != DataType.Json)
            {
                sb.Append("dataType:'xml',");
            }
            sb.AppendFormat("rp:{0}", data.PageSize).Append("});");
            // $(".table1").gridext('Ajax/GetEntity', colModel, '#tablemenu', process,
            //{ colResize: true, colMove: true}); ;
            sb.Append("})();");

            return(sb.ToString());
        }