0
私は自分のページにグリッドを定義します。KendoUIグリッドの更新は問題
<div id="grid"></div>
<script>
$(document).ready(function() {
var crudServiceBaseUrl = "http://demos.kendoui.com/service",
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "/Grid/GetPerson",
dataType: "json",
contentType: 'application/json; charset=utf-8',
type: 'Get'
},
update: {
url: function (person) {
debugger;
return "/Grid/Update";
},
contentType: 'application/json; charset=utf-8',
type: "POST",
},
destroy: {
url: crudServiceBaseUrl + "/Products/Destroy",
dataType: "jsonp"
},
create: {
url: crudServiceBaseUrl + "/Products/Create",
dataType: "jsonp"
},
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return { models: kendo.stringify(options.models) };
}
}
},
batch: true,
pageSize: 20,
schema: {
model: {
id: "ID",
fields: {
ID: { type: "number", editable: false, nullable: true },
Name: { validation: { required: true } },
Family: { validation: { required: true, min: 1 } },
Tel: {}
}
}
}
});
$("#grid").kendoGrid({
dataSource: dataSource,
pageable: true,
height: 430,
toolbar: ["create"],
columns: [
{ field: "Name", title: "نام" },
{ field: "Family", title: "فامیل" },
{ field: "Tel", title: "تلفن", width: "100px" },
{ command: [{ name: "edit", text: "ویرایش" }, { name: "destroy", text: "حذف" }], title: "عملیات", width: "160px" }],
messages: {
editable: {
cancelDelete: "لغو",
confirmation: "آیا مایل به حذف این رکورد هستید؟",
confirmDelete: "حذف"
},
commands: {
create: "افزودن ردیف جدید",
cancel: "لغو کلیهی تغییرات",
save: "ذخیرهی تمامی تغییرات",
destroy: "حذف",
edit: "ویرایش",
update: "ثبت",
canceledit: "لغو"
}
},
editable: "popup"
});
});
update
機能でperson
パラメータでは、iを変更された行にアクセスすることができます。
person.models[0]
それは私を与えます:
Object {ID:1,Name:"pejman",Family:"kam",Tel:"098787887"}
だから私は、サーバーにこのデータを送信したいので、私はGridController
でアクションを持っている:updateメソッドで
url: function (person) {
return "/Grid/Update/" + JSON.stringify(person.models[0])
},
、それはdoesnの:
[HttpPost]
public void Update(TblPerson person)
{
//do update
}
それを行うために、私がしようそれはどうしたらいいですか? 注:
URL:http://localhost:2145/Grid/Update/%7B%22ID%22:1,%22Name%22:%22pejman%22,%22Family%22:%22kam%22,%22Tel%22:%22098787878%22%7D
Status Code:400 Bad Request
POSTコールでデータを送信していないので、JSONをURLに追加するため、これは機能しません。 – jorgonor
彼は試したことを示しただけですが、上のコードがこれで動作しています。私は同じものを使用しています。 – Ademar
MVCは、 'HttpPost'アクションとして宣言されているにもかかわらず、クエリ文字列内に' models'をバインドしていると思います。私は十分にそれを十分に考えなかった、今私はそれを得た。 :) – jorgonor