2

我有现有的休息服务,我正在尝试在 Kendo Grid 中显示返回值。

返回结构:

[{"Form":"xxx","Revision":x,"Status":"xxx"}]

我正在使用 Razor 语法,所以我创建了这样的 Grid:

@(Html.Kendo()
      .Grid<FormViewModel>()
      .Name("form-list")
      .AutoBind(false)
      .Columns(columns =>
          { 
              columns.Bound(m => m.Form).Title("Name");
              columns.Bound(m => m.Revision).Title("Revision");
          })
      .DataSource(dataSource => dataSource
                                    .Ajax()
                                    .Read(read => read.Url(string.Format("{0}/{1}", Html.WebApiBaseUrl(), "Forms")).Type(HttpVerbs.Get))
                                    .Model(model =>
                                        {
                                            model.Id(m => m.Form);
                                            model.Field(m => m.Revision);
                                        })
                                    .Events(events => events.Error("errorHandler"))))

但我的 Grid 无法绑定到 DataSource。据我了解,Kendo 需要ToDataSourceResult()方法调用才能执行正确的 JSON 格式。但是可以直接从客户端进行吗?

控制器:

public class FormController : Controller
{
    public ActionResult GetFormList()
    {
        return View();
    }

}
4

1 回答 1

0

不知道为什么它不适用于 Razor,但我能够解决这个问题。所以我像这样创建我的网格:

<div id="form-list-view" class="k-content">
    <div id="form-list-grid"></div>
</div>

var formListDataSource = new kendo.data.DataSource({
   transport: {
       read: {
           url: "@Url.Content(string.Format("{0}/{1}", Html.WebApiBaseUrl(), "Forms"))",
           dataType: "json"
       }
   },
    schema: {
        model: {
            id: "Form",
            fields: {
                Form: { type: "string" },
                Revision: { type: "number" },
                Status: { type: "string" }
            }
        }
    },
   pageSize: 10
});

$("#form-list-grid").kendoGrid({
    autoBind: false,
    dataSource: formListDataSource,
    pageable: true,
    columns: [
        {
            field: "Form",
            title: "Name"
        },
        {
            field: "Revision",
            title: "Revision"
        },
        {
            field: "Status",
            title: "Status"
        }
    ]
});

现在我有了预期的行为,并且我的 Grid 正确绑定到返回的数据。

于 2013-03-20T12:34:38.997 回答