1

以下のコードに示すように、odata サービスに基づいて剣道のグリッドを作成しました。これはリストに値を表示しますが、新しいレコードの場合、これは機能しません。これは、作成された値だけでなく、リストのテキストも送信するためです。

 @model IEnumerable<SE.CloudMonitor.Web.Models.ObjectType>

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/CloudMonitor.cshtml";
}


<h2 class="tituloVista">Objetos</h2>
<div id="grid"></div>
<script>
    $(document).ready(function () {
        kendo.culture("es-CO");


        var ObjectType = [      
        @foreach (var item in Model)
        {
             @: { "value": @Html.DisplayFor(modelItem => item.ObjectTypeID)  ,'text':" @Html.DisplayFor(modelItem => item.ObjectTypeName) "},
        }  
        ];

        var crudServiceBaseUrl = "Services/CloudMonitor.svc/Objects",
            dataSource = new kendo.data.DataSource({
                type: "odata",
                transport: {
                    read: {
                        url: crudServiceBaseUrl,
                        dataType: "json"
                    },
                    update: {
                        url: function (data) {
                            return crudServiceBaseUrl + "(" + data.ObjectsID + ")";
                        }
                    },
                    create: {
                        url: crudServiceBaseUrl
                    },
                    destroy: {
                        url: function (data) {
                            return crudServiceBaseUrl + "(" + data.ObjectsID + ")";
                        }
                    }
                },
                batch: false,
                pageSize: 5,
                serverPaging: true,
                schema: {
                    model: {
                        id: "ObjectsID",
                        fields: {
                            ObjectsID: { editable: false, nullable: true },
                            ObjectTypeID: { editable: true, nullable: true },
                            ObjectName: { editable: true, nullable: true }
                        }
                    }
                }
            });

        $("#grid").kendoGrid({
            dataSource: dataSource,
            pageable: true,
            height: 400,
            toolbar: ["create"],
            columns: [
                { field: "ObjectName", width: "150px", title:"Nombre objeto" },
                { field: "ObjectTypeID", width: "150px", values: ObjectType, title: "Tipo objeto" },
                { command: ["edit", "destroy"], title: " ", width: "110px" }],
            editable: "popup"
        });
    });
</script>

更新 2014-02-19 多くのソリューションを検索した後、剣道コンボ ボックスが機能しないことがわかりました。これを修正するために、選択タグを使用してテンプレートとエディターを配置したところ、正常に動作するようになりました。

4

0 に答える 0