예제 #1
0
 void BuildFilesGrid()
 {
     try
     {
         using (FileTrackingContainer container = new FileTrackingContainer())
         {
             var data = (from query in container.FileDatas
                         join c in container.Clients on query.ClientId equals c.ClientId
                         join fc in container.FileCategories on query.FileCategoryId equals fc.FileCategoryId
                         join fp in container.FilePriorities on query.FilePriorityId equals fp.FilePriorityId
                         join a in container.Agents on query.CurrentAgentId equals a.AgentId //into ag
                                                                                             //from b in ag.DefaultIfEmpty(new DAL.Agent())
                         select new
             {
                 query.FileDataId,
                 query.FileId,
                 query.FileNoExt,
                 query.FileNoInt,
                 c.ClientName,
                 fc.FileCategoryName,
                 fp.FilePriorityName,
                 query.CurrentStatus,
                 a.AgentName,
                 query.FileEntredOn,
                 query.FileDeliveredOn,
                 query.SubjectBrief,
                 query.SubjectDesc,
                 query.CmoSection,
                 query.LastUpdated,
                 query.FileCode,
                 query.ContactPersonName,
                 query.ContactPersonNumber,
                 query.FundType,
                 query.FundSource,
                 query.Scheme,
                 query.Year,
                 query.AmountProposed,
                 query.AmountApproved,
                 query.AmountMisc
             }).ToList();
             if (data.Count > 0)
             {
                 FGrid.DataSource = data;
                 FGrid.DataBind();
             }
             else
             {
                 FGrid.DataSource = new List <FileData>();
                 FGrid.DataBind();
             }
         }
     }
     catch (Exception e)
     {
     }
 }
예제 #2
0
        public static IHtmlContent Build <T>(this FGrid <T> grid, Action <FGridColumns <T> > builder) where T : class
        {
            builder(grid.Columns);

            var outerDiv = new TagBuilder("div");

            outerDiv.AddCssClass("dataTables_wrapper");

            var table = new TagBuilder("table");

            table.AddCssClass("dataTable table table-hover");
            table.Attributes.Add(new KeyValuePair <string, string>("data-url", grid.SourceUrl));

            outerDiv.InnerHtml.AppendHtml(table);

            var thead    = new TagBuilder("thead");
            var tr       = new TagBuilder("tr");
            var filterTr = new TagBuilder("tr");

            foreach (var column in grid.Columns)
            {
                var th = new TagBuilder("th");
                th.Attributes.Add(new KeyValuePair <string, string>("data-name", column.Name));
                th.InnerHtml.Append(string.IsNullOrEmpty(column.DisplayName) ? column.Name : column.DisplayName);

                if (!column.IsSearchable)
                {
                    th.AddCssClass("not-searchable");
                    filterTr.InnerHtml.AppendHtml(new TagBuilder("th"));
                }
                else
                {
                    var filterTh = new TagBuilder("th");
                    if (column.FilterOptions != null && column.FilterOptions.Any())
                    {
                        var select = new TagBuilder("select");
                        select.InnerHtml.AppendHtml(new TagBuilder("option"));
                        foreach (var option in column.FilterOptions)
                        {
                            var optionTag = new TagBuilder("option");
                            optionTag.Attributes.Add(new KeyValuePair <string, string>("value", option.Value));
                            optionTag.InnerHtml.Append(option.DisplayText);
                            select.InnerHtml.AppendHtml(optionTag);
                        }

                        select.AddCssClass("form-control");
                        select.AddCssClass("form-control-sm");
                        filterTh.InnerHtml.AppendHtml(select);
                    }
                    else
                    {
                        var input = new TagBuilder("input");
                        input.Attributes.Add(new KeyValuePair <string, string>("type", "text"));
                        input.AddCssClass("form-control");
                        input.AddCssClass("form-control-sm");
                        filterTh.InnerHtml.AppendHtml(input);
                    }

                    filterTr.InnerHtml.AppendHtml(filterTh);
                }

                if (!column.IsOrderable)
                {
                    th.AddCssClass("not-orderable");
                }

                tr.InnerHtml.AppendHtml(th);
            }

            thead.InnerHtml.AppendHtml(tr);
            thead.InnerHtml.AppendHtml(filterTr);
            table.InnerHtml.AppendHtml(thead);

            string result;

            using (var sw = new System.IO.StringWriter())
            {
                outerDiv.WriteTo(sw, System.Text.Encodings.Web.HtmlEncoder.Default);
                result = sw.ToString();
            }

            return(new HtmlString(result));
        }