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"))))

しかし、私のグリッドは DataSource にバインドできません。私が理解したように、KendoToDataSourceResult()は正しい 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 に答える