0

如何使用我的 dataLayer (DL)在 kendo 的datagridview上显示数据?,我还查看了 Telerik kendo 的文档,但我发现它令人困惑?

当我运行下面的代码时,它只显示列的标题。

看法

    @(Html.Kendo().Grid<sampleProj.Model>() // Specify the type of the grid
    .Name("Grid")
    .BindTo((IEnumerable<sampleProj.Model>)ViewBag.Products)
    .Columns(columns =>
    {
        columns.Bound(p => p.FirstName);
        columns.Bound(p => p.LastName);
        columns.Bound(p => p.MName);
        columns.Bound(p => p.Name);
    })
)

更新错误代码

@(Html.Kendo().Grid((List<MDL.Employee>)ViewData["oEmployees"])  
.Name("Grid")    
.Columns(columns => 
{        
    columns.Bound(p => p.Code).Title("Code");
    columns.Bound(p => p.FirstName).Title("First Name").Width(140);
    columns.Bound(p => p.LastName).Title("Last Name").Width(140);
    columns.Bound(p => p.Position).Title("Position").Width(100);
})

当我添加以下属性时,此错误描述

用户代码未处理 HttCompileException 外部组件已引发异常 ,当我删除下面的代码时,它显示数据网格视图但没有 Action 方法

.ToolBar(toolbar => {
        toolbar.Create();
        toolbar.Save();
        toolbar.Custom();      
    })

    .Editable(editable => editable.Mode(GridEditMode.InCell))
    .Pageable()
    .Sortable()
    .Scrollable()
    .DataSource(dataSource => dataSource        
       .Ajax()         
       .Batch(true)
       .ServerOperation(false)
       .Events(events => events.Error("error_handler"))
       .Model(model => model.Id(p => p.Code))
       .Read(read => read.Action("dialogEmp_read", "MasterData"))
       .Create(update => update.Action("dialogEmp_Create", "MasterData"))
       .Update(update => update.Action("dialogEmp_Update", "MasterData"))
       .Destroy(update => update.Action("dialogEmp_Destroy", "MasterData"))

    )
4

1 回答 1

1

您只需要遵循此过程在上述过程中,您缺少 Kendo Grid 的读取方法。所以请参阅 Cshtml 页面中的以下代码

  @(Html.Kendo().Grid<sampleProj.Model.ListWhichYouAreBinding/StoredProcedure/ModelName>()
          .Name("GridName")
          .Columns(columns =>
          {
 columns.Bound(p => p.Name).Title("Name");
 columns.Bound(p => p.Phone).Title("Phone");
 columns.Bound(p => p.OtherValue).Title("Balance").Format({0:c}").HtmlAttributes(new
 {
  style = "text-align:right; padding-right: 11%;"
 });
 columns.Command(command => 
 { command.Destroy(); 
   command.Edit();
         }).Width(150);
        })
        .ToolBar(toolbar => toolbar.Create().Text("Add New"))
        .Editable(editable => editable.Mode(0))
        .Sortable()
        .DataSource(dataSource => dataSource
        .Ajax()
        .Model(model =>
        {
            model.Id(p => p.GivePrimaryKeyFieldNAme);
            model.Field(p => p.GivePrimaryKeyFieldNAme).Editable(false);
        })

        .Create(update => update.Action("CreateRow", "ControllerName"))
       .Read(read => read.Action("GetData", "ControllerName", ))
        .Update(update => update.Action("UpdateRow", "ControllerName"))
      .Destroy(update => update.Action("DeleteRow", "ControllerName"))
         ))

现在,在控制器中,您必须为 ReadUpdateDeleteCreate 创建上述所有方法。我只会告诉你阅读。进入您的控制器并执行此操作。记住函数的名称应该和写的一样

Read(read=>read.action in above)

即 GetData 所以,在控制器中做一个这样的函数

[HttpPost]
 public ActionResult GetData ([DataSourceRequest] DataSourceRequest request)
 {
 var YourData=Get Your List Here From Datatbase;
 return Json(YourData.ToDataSourceResult(request));
 }

希望这对你有用。

于 2013-05-01T09:58:29.133 回答