{ //var columnData=rtxVending.Web.Repositories.SessionRepository.GetSessionObject(ApplicationConstants.sesAcquireStockDataColumnCollection); //如果(columnData!=null&&columnData.Count>0) if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { columns.bind(column.ColumnName); } }) .Pageable(pager=>pager.Refresh(true)) .Sortable() .Scrollable() .DataSource(DataSource=>DataSource .Ajax() .Read(Read=>Read.Action(“GetProductDetailsGrid”、“Products”)) .Model(Model=> { if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { model.Field(column.ColumnName,column.DataType); } }),asp.net-mvc,kendo-grid,Asp.net Mvc,Kendo Grid" /> { //var columnData=rtxVending.Web.Repositories.SessionRepository.GetSessionObject(ApplicationConstants.sesAcquireStockDataColumnCollection); //如果(columnData!=null&&columnData.Count>0) if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { columns.bind(column.ColumnName); } }) .Pageable(pager=>pager.Refresh(true)) .Sortable() .Scrollable() .DataSource(DataSource=>DataSource .Ajax() .Read(Read=>Read.Action(“GetProductDetailsGrid”、“Products”)) .Model(Model=> { if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { model.Field(column.ColumnName,column.DataType); } }),asp.net-mvc,kendo-grid,Asp.net Mvc,Kendo Grid" />

Asp.net mvc " }) .列(列=> { //var columnData=rtxVending.Web.Repositories.SessionRepository.GetSessionObject(ApplicationConstants.sesAcquireStockDataColumnCollection); //如果(columnData!=null&&columnData.Count>0) if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { columns.bind(column.ColumnName); } }) .Pageable(pager=>pager.Refresh(true)) .Sortable() .Scrollable() .DataSource(DataSource=>DataSource .Ajax() .Read(Read=>Read.Action(“GetProductDetailsGrid”、“Products”)) .Model(Model=> { if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { model.Field(column.ColumnName,column.DataType); } })

Asp.net mvc " }) .列(列=> { //var columnData=rtxVending.Web.Repositories.SessionRepository.GetSessionObject(ApplicationConstants.sesAcquireStockDataColumnCollection); //如果(columnData!=null&&columnData.Count>0) if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { columns.bind(column.ColumnName); } }) .Pageable(pager=>pager.Refresh(true)) .Sortable() .Scrollable() .DataSource(DataSource=>DataSource .Ajax() .Read(Read=>Read.Action(“GetProductDetailsGrid”、“Products”)) .Model(Model=> { if(Model.productDetailsDataable!=null) foreach(Model.ProductDetailsDataTable.Columns中的System.Data.DataColumn列) { model.Field(column.ColumnName,column.DataType); } }),asp.net-mvc,kendo-grid,Asp.net Mvc,Kendo Grid,.Events(Events=>Events.Error(“错误处理程序”)) ) public class ProductDetails { [Key,ScaffoldColumn(false)] public long ProductDetailId { get; set; } public int ProductHeaderId { get; set; } public double Amount { get; set; }

.Events(Events=>Events.Error(“错误处理程序”)) )

public class ProductDetails
{
        [Key,ScaffoldColumn(false)]
        public long ProductDetailId { get; set; }
        public int ProductHeaderId { get; set; }
        public double Amount { get; set; }
        public string Value { get; set; }
        public string Value1 { get; set; }
        public string Value2 { get; set; }
        public string Value3 { get; set; }
        public string Value4 { get; set; }
        public string Value5 { get; set; }
        public string Value6 { get; set; }
        public string Value7 { get; set; }
        public string Value8 { get; set; }
        public string Value9 { get; set; }
        public string Value10 { get; set; }
        public string Value1DisplayName {get; set;}
        public bool Valid { get; set; }

} 
@(Html.Kendo()
        //.Grid<rtxVending.Web.Models.ProductDetails>()
                  .Grid(Model.ProductDetailsDataTable)
                  .Name("ProductDetailGrid")//.ClientDetailTemplateId("")
                  .HtmlAttributes(new { @style = "align:center; font-size:9px;" })
                  .Columns(columns =>
                  {
                      //var columnData = rtxVending.Web.Repositories.SessionRepository.GetSessionObject<System.Data.DataColumnCollection>(ApplicationConstants.sesAcquireStockDataColumnCollection);

                      //if(columnData != null && columnData.Count > 0)
                      if (Model.ProductDetailsDataTable != null)
                      foreach (System.Data.DataColumn column in Model.ProductDetailsDataTable.Columns)
                      {
                          columns.Bound(column.ColumnName);
                      }
})
.Pageable(pager => pager.Refresh(true))   
.Sortable()
.Scrollable()    
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(read => read.Action("GetProductDetailsGrid", "Products"))
                      .Model(model =>
                    {
                        if (Model.ProductDetailsDataTable != null)
                        foreach (System.Data.DataColumn column in Model.ProductDetailsDataTable.Columns)
                        {
                            model.Field(column.ColumnName, column.DataType);
                        }                
                    })
如果有什么需要解释的,我会尽快回复。谢谢皮克教授

public class ProductDetails
{
        [Key,ScaffoldColumn(false)]
        public long ProductDetailId { get; set; }
        public int ProductHeaderId { get; set; }
        public double Amount { get; set; }
        public string Value { get; set; }
        public string Value1 { get; set; }
        public string Value2 { get; set; }
        public string Value3 { get; set; }
        public string Value4 { get; set; }
        public string Value5 { get; set; }
        public string Value6 { get; set; }
        public string Value7 { get; set; }
        public string Value8 { get; set; }
        public string Value9 { get; set; }
        public string Value10 { get; set; }
        public string Value1DisplayName {get; set;}
        public bool Valid { get; set; }

} 
@(Html.Kendo()
        //.Grid<rtxVending.Web.Models.ProductDetails>()
                  .Grid(Model.ProductDetailsDataTable)
                  .Name("ProductDetailGrid")//.ClientDetailTemplateId("")
                  .HtmlAttributes(new { @style = "align:center; font-size:9px;" })
                  .Columns(columns =>
                  {
                      //var columnData = rtxVending.Web.Repositories.SessionRepository.GetSessionObject<System.Data.DataColumnCollection>(ApplicationConstants.sesAcquireStockDataColumnCollection);

                      //if(columnData != null && columnData.Count > 0)
                      if (Model.ProductDetailsDataTable != null)
                      foreach (System.Data.DataColumn column in Model.ProductDetailsDataTable.Columns)
                      {
                          columns.Bound(column.ColumnName);
                      }
})
.Pageable(pager => pager.Refresh(true))   
.Sortable()
.Scrollable()    
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(read => read.Action("GetProductDetailsGrid", "Products"))
                      .Model(model =>
                    {
                        if (Model.ProductDetailsDataTable != null)
                        foreach (System.Data.DataColumn column in Model.ProductDetailsDataTable.Columns)
                        {
                            model.Field(column.ColumnName, column.DataType);
                        }                
                    })
//Converts Generic List to DataTable
    private DataTable ToDataTable<T>(List<T> data)// T is any generic type
    {
        PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T));
        int columnCount = 0;
        DataTable table = new DataTable();
        var colums = rtxVending.Web.Repositories.SessionRepository.GetSessionObject<IList<rtxVending.Web.Models.ProductCategoryTags>>(ApplicationConstants.sesProductsHeaderCategoryTags);
        if (colums != null && colums.Count > 0)
        {
            var columnName = colums.Select(a => a.ValueX).ToArray();

            for (int i = 0; i < columnName.Count(); i++)
            {
                table.Columns.Add(columnName[i]);
            }

            columnCount = columnName.Count();
        }
        else
        {
            for (int i = 0; i < props.Count; i++)
            {
                PropertyDescriptor prop = props[i];
                table.Columns.Add(prop.Name, prop.PropertyType);
            }            
        }            

        object[] values = new object[props.Count];
        foreach (T item in data)
        {
            for (int i = 0; i < values.Length; i++)
            {
                values[i] = props[i].GetValue(item);
            }

            object[] newValues = new object[columnCount];
            int j = 0;
            foreach (var p in values)
            {
                Type argType = p.GetType();

                if (argType == typeof(bool) && !((bool)p)) 
                {
                    newValues[j] = p;
                    j++;
                }
                else if(argType == typeof(int) && (int)p != 0)
                {
                    newValues[j] = p;
                    j++;
                }
                else if (argType == typeof(double) && (double)p != 0)
                {
                    newValues[j] = p;
                    j++;
                }
                else if (argType == typeof(string) && p != null && p != string.Empty)
                {
                    newValues[j] = p;
                    j++;
                }

                if (j >= columnCount)
                    break;
            }

            //table.Rows.Add(values);
            //table.Rows.Add(newValues);
        }
        return table;
    }
@(Html.Kendo()
        //.Grid<rtxVending.Web.Models.ProductDetails>()
                  .Grid(Model.ProductDetailsDataTable)
                  .Name("ProductDetailGrid")//.ClientDetailTemplateId("")
                  .HtmlAttributes(new { @style = "align:center; font-size:9px;" })
                  .Columns(columns =>
                  {
                      //var columnData = rtxVending.Web.Repositories.SessionRepository.GetSessionObject<System.Data.DataColumnCollection>(ApplicationConstants.sesAcquireStockDataColumnCollection);

                      //if(columnData != null && columnData.Count > 0)
                      if (Model.ProductDetailsDataTable != null)
                      foreach (System.Data.DataColumn column in Model.ProductDetailsDataTable.Columns)
                      {
                          columns.Bound(column.ColumnName);
                      }
})
.Pageable(pager => pager.Refresh(true))   
.Sortable()
.Scrollable()    
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(read => read.Action("GetProductDetailsGrid", "Products"))
                      .Model(model =>
                    {
                        if (Model.ProductDetailsDataTable != null)
                        foreach (System.Data.DataColumn column in Model.ProductDetailsDataTable.Columns)
                        {
                            model.Field(column.ColumnName, column.DataType);
                        }                
                    })