私は Kendo+razor を使用しており、特定のデータ モデルを持たない Kendo グリッドを作成したいと考えています (私の場合、ユーザーが入力した SQL クエリの結果を表示する必要があるため、結果に任意の数値を含めることができます)。 /列の種類)。汎用にするために、グリッドを System.data.DataTable にバインドし、そのグリッドにデータを入力する ajax 呼び出しを試みました。初めてロードしたときは正常に動作しますが、同じグリッドを再作成すると、列名が更新されません。
シナリオ:
ボタンのクリックで Ajax 呼び出しが行われ、グリッドにクエリ結果が入力されます。最初の ajax 呼び出しでは、結果は属性 id、name、および description を持つ JSON でした。グリッドは、上記の 3 つの列と 4 つの行で正しいデータを示しました。
2 回目の ajax 呼び出しでは、応答 JSON に属性 UserName、UserType、Address、PhoneNumber が含まれます。今回は、グリッドはモデル バインディングを更新せず、列は前の 3 つの列 id、name、および description のままですが、行数は更新されません。その中のデータ (返された JSON に列が存在しないため)
毎回異なる可能性がある、返された JSON 属性に列を再バインドしたいと考えています。
ここに私のHTMLコードがあります:
@model System.Data.DataTable
<div>
@(Html.Kendo().Grid(Model)
.Name("ResultsGrid")
.TableHtmlAttributes(new { Class = "kendoGrid" })
)
</div>
およびボタンクリックコードのJavascript:
function execute() {
$.ajax({
url: "something something",
type: "GET",
contentType: "application/json;charset=utf-8",
data: "",
dataType: "json",
success: function (data) {
$("#ResultsGrid").kendoGrid({
scrollable: false,
pageable: true,
sortable: true,
resizable: true,
dataSource: {
data: data,
pageSize: 5
}
});
}
}
グリッドを更新して列を新しい JSON 属性にバインドするにはどうすればよいですか?