AjaxResponeを使用してtelerikグリッドを再バインドする方法を教えてください。ajax Responseがすべてのデータを取得し、これらのデータをTelerikグリッドにバインドするようにコントローラーでreturnメソッドを作成する方法。
質問する
3883 次
1 に答える
3
グリッドには、シナリオで利用できる広範なクライアント側APIがあります。注意すべきイベントはOnDataBindingです。
グリッドの次の例を見てください。 http://demos.telerik.com/aspnet-mvc/grid/externalservicetwitter
これは、Twitterに接続してツイートを取得するデモです。ただし、Twitterに接続し、ツイートを検索し、ツイートを取得し、グリッドを結果にバインドするアクションはすべて、クライアント側から実行されます。
グリッドは最初に次のように定義されます。
<%= Html.Telerik().Grid<TwitterItem>()
.Name("Grid")
.Columns(columns =>
{
columns.Template(o => { }).Title("Author").Width(100);
columns.Template(o => { }).Title("Avatar").Width(80);
columns.Bound(o => o.text).Title("Post");
})
.ClientEvents(events => events
.OnDataBinding("onDataBinding")
.OnRowDataBound("onRowDataBound")
)
.Scrollable(scrolling=>scrolling.Height(400))
%>
ユーザーが検索ボタンをクリックすると、グリッド上でajaxrequestが発行されます。コードスニペットは次のとおりです。
$('#searchButton').click(function(e) {
e.preventDefault();
$('#Grid').data('tGrid').ajaxRequest();
});
これにより、OnDataBindingが起動します。ondatabindingメソッドのコードスニペットは次のとおりです。
function onDataBinding(e) {
var grid = $(this).data('tGrid');
$('.t-status .t-icon', grid.element).addClass('t-loading');
// call the twitter search api
$.ajax({
url: 'http://search.twitter.com/search.json',
contentType: 'application/json; charset=utf-8',
type: 'GET',
dataType: 'jsonp',
error: function(xhr, status) {
alert(status);
},
data: {
q: $('#searchText').val()
},
success: function(result) {
grid.dataBind(result.results);
$('.t-status .t-icon', grid.element).removeClass('t-loading');
}
});
}
ご覧のとおり、Twitterにajaxリクエストを発行し、データが戻ってきたら、グリッドでdataBindメソッドを呼び出すだけです。
私があなたの質問に答えることができたと思います。
Lohith(Tech Evangelist、Telerik India)
于 2012-07-26T20:01:55.293 に答える