迭代List <object> </object>的集合

时间:2012-12-24 16:01:09

标签: asp.net-mvc-4 telerik-grid

我有什么可能是简单的问题,但我很难过。我从另一个程序集中调用一个方法,该方法返回List<object>,此数据是使用LinqToExcel查询的Excel电子表格数据。在幕后,该集合实际上是List<LinqToExcel.Cell>。在LinqToExcel中,组成LinqToExcel.Row。我希望能够将此数据绑定到Telerik ASP.NET MVC网格以供查看。这是我的控制器代码:

TypeOfServiceCodeListingDetailViewModel model = new TypeOfServiceCodeListingDetailViewModel();
model.Excel_Data = new List<LinqToExcel.Row>();
using (LinqToExcelReader reader = new LinqToExcelReader(fileName, true))
{
  previewData = reader.ReadRawDataByPage(5, 0);

  foreach (LinqToExcel.Row item in previewData)
  {
    model.Excel_Data.Add(item);
  }
  return View(new GridModel(model.Excel_Data));  
}

在我看来:

@(Html.Telerik().Grid(Model.Excel_Data)
                .Name("Grid2")
                .HtmlAttributes(new { style = "width:400px;" })
                .DataBinding(dataBinding => dataBinding.Ajax().Select("GetExcelData", "TypeOfService"))
                .Columns(columns =>
                {
                  columns.AutoGenerate(column =>
                  {
                    column.Width = "150px";
                  });
                }))

这是我的网格有如下所示的标题,没有数据:

容量计数

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是解决我问题的代码。我确信有更好的方法。

using (LinqToExcelReader reader = new LinqToExcelReader(modelDetail.FileName, true))
{
  var previewData = reader.ReadRawDataByPage(5, 0);

  List<List<string>> masterList = new List<List<string>>();

  for (int x = 0; x < previewData.Count; x++)
  {
    List<string> list = new List<string>();

    foreach (var cell in (LinqToExcel.Row)previewData[x])
    {
      list.Add(cell);
    }

    masterList.Add(list);
  }

  var listTest = masterList;
  modelDetail.ExcelData = new List<ExcelData>();

  foreach (List<string> theList in masterList)
  {
    ExcelData xlsData = new ExcelData();
    xlsData.Column1 = theList[0];
    xlsData.Column2 = theList[1];
    xlsData.Column3 = theList[2];
    xlsData.Column4 = theList[3];
    xlsData.Column5 = theList[4];
    xlsData.Column6 = theList[5];
    xlsData.Column7 = theList[6];
    xlsData.Column8 = theList[7];
    xlsData.Column9 = theList[8];
    xlsData.Column10 = theList[9];

    modelDetail.ExcelData.Add(xlsData);
  }
相关问题