4

要件に従って、ビューに Kendo UI グリッドがあります。しかし、悲しいことに、コントローラーで読み取り機能がヒットしていません。これは面倒です。すべてがドキュメントに従っているように見えても、同じ問題が発生していますhttp://demos.kendoui.c​​om /web/grid/index.htmlで提供されています。ここに私のビューコードがあります:

 @(Html.Kendo().Grid<StudentManagement_Models.Student>()
.Name("studentsGrid")
.Columns(columns =>
{

    columns.Bound(p => p.Id).Groupable(false);
    columns.Bound(p => p.FirstName);
    columns.Bound(p => p.MiddleName);
    columns.Bound(p => p.LastName);
    columns.Bound(p => p.CGPA);



})
    .AutoBind(true)
    .Pageable()
    .Navigatable()
    .Sortable()
    .DataSource(dataSource => dataSource
            .Ajax()
                            .Read(read => read.Action("GetAllStudents", "Student"))
            )
        )

これが私のコントローラーアクションです:

 public ActionResult GetAllStudents([DataSourceRequest] DataSourceRequest request)
    {
        //Thread.Sleep(2000);
        StudentManagement_Models.Student student = new StudentManagement_Models.Student();
        StudentHelper helper = new StudentHelper();
        student.SavedStudents = helper.GetAllStudents();

        return Json(student.SavedStudents.ToDataSourceResult(request));
    }

どうすればこれに取り組めますか?何か不足していますか?親切に提案してください。

前もって感謝します。

4

5 に答える 5

6

このファイルをすべてページに追加します

<script src="~/Script/Jquery-1.8.1.min.js" type="text/javascript"></script>
<script src="~/Script/jquery-ui-1.8.20.min.js" type="text/javascript"></script>
<script src="@Url.Content("~/Script/kendo.all.min.js")" type="text/javascript"></script>
<script src="~/Script/kendo.web.min.js" type="text/javascript"></script>
<script src="~/Script/kendo.aspnetmvc.min.js" type="text/javascript"></script>
<link href="~/Content/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="~/Content/kendo.default.min.css" rel="stylesheet" type="text/css" />

jsあなたのページの の 1 つが間違っていると思いますJquery-1.8.1.min.js

于 2013-08-26T12:50:36.280 に答える
5

MVCバージョンでも同様の問題がありました。

404 が発生していることに気付きましたが、Chrome デバッガーで 404 のリンクをクリックすると、実際にコントローラー メソッドにヒットしました。次に、POST を使用していることに気付きました (そして HttpVerbs.Get が指定されていました)。

次に、これを見つけました(http ://docs.kendoui.c​​om/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/troubleshooting から):

デフォルトでは、Ajax バインディング用に構成されている場合、ASP.NET MVC の Kendo Grid は POST 要求を行う必要があります。これは、カスタム DataSource トランスポートおよびスキーマによって実装されます。これらは kendo.aspnetmvc.min.js で定義されています。このファイルが他の Kendo JavaScript ファイルの後に含まれていることを確認してください。

スクリプトが実際に正しい順序になっていることを確認した後 (そして、おそらく POST と関係があることを知っていたので)、グリッドでの読み取りの最後に使用する動詞を次のように指定しました。

.Read(read => read.Action("MyList_Read", "Diagnosis").Type(HttpVerbs.Get))

これで私の問題は解決しました。

于 2013-09-17T16:39:50.290 に答える
3

JQuery の document.ready() で read メソッドを呼び出してみてください

$(document).ready(function () { var grid = $("#studentsGrid").data("kendoGrid")
grid.dataSource.read()
})

また、savedStudent は学生のタイプです.... Ur グリッドは Student にバインドされていますが、SavedStudent オブジェクトを返しています

于 2013-08-19T13:23:57.053 に答える