光滑网格动态加载不显示 (MVC 5)

本文关键字:MVC 显示 网格 动态 加载 | 更新日期: 2023-09-27 18:37:28

我已经从我的控制器转换了我的数据表,如下所示:

public string GetReportResults(int ID)
{
     UserInterface engine = new UserInterface();
     UserStandardReport rpt = engine.GetStandardReport(CreateLoggedInUser(), ID);
     DataTable dt = engine.GetQueryData(CreateLoggedInUser(), rpt);
     System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
     List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
     Dictionary<string, object> row;
     foreach (DataRow dr in dt.Rows)
     {
         row = new Dictionary<string, object>();
         foreach (DataColumn col in dt.Columns)
             row.Add(col.ColumnName, dr[col]);
         rows.Add(row);
     }
     return serializer.Serialize(rows);
 }

返回的数据片段:[{"客户城市":空,"客户地址行 1":空,"客户地址行 2":空,"客户名称(公司或全名)":","客户状态":空,"客户邮编":空},{"客户城市":空,"客户地址行 1":空,"客户地址行 2":空,"客户名称(公司或全名)":"1 位置","客户状态":空,"客户邮政编码":空},{"客户城市":空,"客户地址行 1":

null,"客户地址行 2":null,"客户名称(公司或全名)":"2 位置","客户状态":null,"客户邮政编码":空},{"客户城市":空,"客户地址行 1":空,"客户地址行 2":空,"客户名称(公司或全名)":"3 位置","客户状态":空,"客户邮政编码":空}]

在我看来,我正在使用这个:

$(function () {
     var columnName;
     var columns = @Html.Raw(Json.Encode(Model.columns));
     for (var n=0; n< columns.length; n++)
     {
         columnName = columns[n];
         cols.push({
             id: columnName,
             name: columnName,
             field: columnName
         });
     }
     $.getJSON("/Home/GetReportResults", {ID: @Model.ID}).done(function(data){
         slickdata = data;
     });
     dataview = new Slick.Data.DataView({inlineFilters: true});
     grid = new Slick.Grid("#availableGrid", dataview, cols, options);
     dataview.beginUpdate();
     dataview.setItems(slickdata);
     dataview.endUpdate();
});

My Model.columns 是一个列表,其中包含列名称 {"客户城市"、"客户地址行 1"、"客户地址行 2"、"客户名称(公司或全名)"、"客户状态"、"客户邮政编码"}。 这些将根据返回的结果而变化。

目前,我在网格中看到我的列,但没有显示任何数据。 我已经仔细检查了Firebug。 没有错误。 网格中我缺少什么?

光滑网格动态加载不显示 (MVC 5)

将调用 to dataview.setItems(slickdata) 放在$.getJSON()回调中。