উত্তর:
তুমি ব্যবহার করতে পার
$('#GridName').data('kendoGrid').dataSource.read(); <!-- first reload data source -->
$('#GridName').data('kendoGrid').refresh(); <!-- refresh current UI -->
আমি কখনই রিফ্রেশ করি না
$('#GridName').data('kendoGrid').dataSource.read();
আমার জন্য একা সব সময় কাজ করে।
$('#GridName').data('kendoGrid').dataSource.read();
$('#GridName').data('kendoGrid').refresh();
সাম্প্রতিক প্রকল্পে, আমাকে কিছু কলের ভিত্তিতে কেন্দো ইউআই গ্রিড আপডেট করতে হয়েছিল, যা কিছু ড্রপডাউন নির্বাচনের ক্ষেত্রে ঘটছিল। এখানে আমি ব্যবহার করে শেষ করেছি:
$.ajax({
url: '/api/....',
data: { myIDSArray: javascriptArrayOfIDs },
traditional: true,
success: function(result) {
searchResults = result;
}
}).done(function() {
var dataSource = new kendo.data.DataSource({ data: searchResults });
var grid = $('#myKendoGrid').data("kendoGrid");
dataSource.read();
grid.setDataSource(dataSource);
});
আশা করি এটি আপনার কিছুটা সময় সাশ্রয় করবে।
এই উত্তরের একটিও জবাব দেয় না যে read
প্রতিশ্রুতি দেয়, যার অর্থ আপনি রিফ্রেশ করার আগে ডেটা লোড হওয়ার জন্য অপেক্ষা করতে পারেন।
$('#GridId').data('kendoGrid').dataSource.read().then(function() {
$('#GridId').data('kendoGrid').refresh();
});
আপনার ডেটা দখলটি তাত্ক্ষণিকভাবে / সিঙ্ক্রোনাস হলে এটি অপ্রয়োজনীয়, তবে সম্ভবত এটি শেষের দিক থেকে আসছে যা অবিলম্বে ফিরে আসবে না।
আসলে, তারা পৃথক:
$('#GridName').data('kendoGrid').dataSource.read()
uid
সারণী সারিটির বৈশিষ্ট্যগুলি রিফ্রেশ করে
$('#GridName').data('kendoGrid').refresh()
একই uid ছেড়ে
আপনাকে যা করতে হবে তা হ'ল একটি ইভেন্ট যোগ করুন your
@(Html.Kendo().Grid<Models.DocumentDetail>().Name("document")
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(model => model.Id(m => m.Id))
.Events(events => events.Sync("KendoGridRefresh"))
)
.Columns(columns =>
{
columns.Bound(c => c.Id).Hidden();
columns.Bound(c => c.UserName).Title(@Resources.Resource.lblAddedBy);
}).Events(e => e.DataBound("onRowBound"))
.ToolBar(toolbar => toolbar.Create().Text(@Resources.Resource.lblNewDocument))
.Sortable()
.HtmlAttributes(new { style = "height:260px" })
)
এবং আপনি আপনার .js ফাইলের মধ্যে নিম্নলিখিত গ্লোবাল ফাংশনটি যুক্ত করতে পারেন। সুতরাং, আপনি কেন্ডোগ্রিড রিফ্রেশ করার জন্য আপনার প্রকল্পের সমস্ত কেন্দো গ্রিডের জন্য কল করতে পারেন।
function KendoGridRefresh() {
var grid = $('#document').data('kendoGrid');
grid.dataSource.read();
}
আমার ক্ষেত্রে আমার প্রতিবার যেতে একটি কাস্টম ইউআরএল ছিল; যদিও ফলাফলের স্কিমা একই থাকবে।
আমি নিম্নলিখিত ব্যবহার:
var searchResults = null;
$.ajax({
url: http://myhost/context/resource,
dataType: "json",
success: function (result, textStatus, jqXHR) {
//massage results and store in searchResults
searchResults = massageData(result);
}
}).done(function() {
//Kendo grid stuff
var dataSource = new kendo.data.DataSource({ data: searchResults });
var grid = $('#doc-list-grid').data('kendoGrid');
dataSource.read();
grid.setDataSource(dataSource);
});
আপনি নীচের লাইন ব্যবহার করতে পারেন
$('#GridName').data('kendoGrid').dataSource.read();
$('#GridName').data('kendoGrid').refresh();
অটো রিফ্রেশ বৈশিষ্ট্যের জন্য এখানে একবার দেখুন
নিম্নলিখিত কোড ব্যবহার করে এটি স্বয়ংক্রিয়ভাবে গ্রিডের পড়ার পদ্ধতি এবং আবার গ্রিড পূরণ করুন called
$('#GridName').data('kendoGrid').dataSource.read();
আপনি সর্বদা ব্যবহার করতে পারেন $('#GridName').data('kendoGrid').dataSource.read();
। এর .refresh();
পরে আপনার সত্যিই দরকার .dataSource.read();
নেই, কৌশলটি করবেন।
এখন আপনি যদি আরও বেশি কৌণিক উপায়ে আপনার গ্রিডটি রিফ্রেশ করতে চান তবে আপনি এটি করতে পারেন:
<div kendo-grid="vm.grid" id="grid" options="vm.gridOptions"></div>
vm.grid.dataSource.read();`
অথবা
vm.gridOptions.dataSource.read();
এবং আপনার ডেটাসোর্সকে kendo.data.DataSource
টাইপ হিসাবে ঘোষণা করতে ভুলবেন না
আমি গ্রিডটি রিফ্রেশ করলে আমি পৃষ্ঠা 1 এ ফিরে যেতে চাই। স্রেফ পঠন () ফাংশনটিতে কল করা আপনাকে বর্তমান পৃষ্ঠায় রাখবে, এমনকি নতুন ফলাফলের অনেকগুলি পৃষ্ঠা না থাকলেও। ডেটাসোর্সে .পৃষ্ঠা (1) কে কল করা ডেটাসোর্স রিফ্রেশ করবে এবং পৃষ্ঠা 1 এ ফিরে আসবে তবে গ্রিডে ব্যর্থ হয় যা পৃষ্ঠাযুক্ত নয়। এই ফাংশন উভয় পরিচালনা করে:
function refreshGrid(selector) {
var grid = $(selector);
if (grid.length === 0)
return;
grid = grid.data('kendoGrid');
if (grid.getOptions().pageable) {
grid.dataSource.page(1);
}
else {
grid.dataSource.read();
}
}
একটি সম্পূর্ণ রিফ্রেশ করার জন্য, যেখানে নতুন পড়ার অনুরোধের সাথে গ্রিডটি পুনরায় রেন্ডার করা হবে, আপনি নিম্নলিখিতটি করতে পারেন:
Grid.setOptions({
property: true/false
});
যেখানে সম্পত্তি যেকোন সম্পত্তি যেমন বাছাইযোগ্য হতে পারে
শুধু কোড নীচে লিখুন
$('.k-i-refresh').click();
$("#theidofthegrid").data("kendoGrid").dataSource.data([ ]);
আপনি চেষ্টা করতে পারেন:
$('#GridName').data('kendoGrid').dataSource.read();
$('#GridName').data('kendoGrid').refresh();
আপনি যদি সময়সীমার ভিত্তিতে গ্রিডটি স্বয়ংক্রিয়ভাবে রিফ্রেশ করতে চান তবে আপনি নীচের উদাহরণটি ব্যবহার করতে পারেন যা 30 সেকেন্ডের ব্যবধানে সেট করেছে:
<script type="text/javascript" language="javascript">
$(document).ready(function () {
setInterval(function () {
var grid = $("#GridName").data("kendoGrid");
grid.dataSource.read();
}, 30000);
});
</script>
উইজেটগুলির ডিফল্ট / আপডেট কনফিগারেশন / ডেটা স্বয়ংক্রিয়ভাবে কোনও সম্পর্কিত ডেটা সোর্সকে আবদ্ধ করতে সেট করা হয়েছে।
$('#GridId').data('kendoGrid').dataSource.read();
$('#GridId').data('kendoGrid').refresh();
refresh
আপনি পড়ার ক্রিয়ায় নতুন প্যারামিটার প্রেরণ এবং আপনার পছন্দ অনুযায়ী পৃষ্ঠা সেট করে আপনার গ্রিডকে রিফ্রেশ করতে পারেন:
var ds = $("#gridName").data("kendoGrid").dataSource;
ds.options.page = 1;
var parameters = {
id: 1
name: 'test'
}
ds.read(parameters);
এই উদাহরণে গ্রিডের পড়ার ক্রিয়াটি 2 টি প্যারামিটার মান দ্বারা কল করা হচ্ছে এবং ফলাফল পাওয়ার পরে গ্রিডের পৃষ্ঠাটি 1 পৃষ্ঠায় রয়েছে।
রিফ্রেশ করার সহজ উপায় হ'ল রিফ্রেশ () ফাংশনটি ব্যবহার করা। যা এর মতো হয়:
$('#gridName').data('kendoGrid').refresh();
আপনি এই আদেশটি ব্যবহার করে ডেটা উত্সটি রিফ্রেশ করতে পারেন:
$('#gridName').data('kendoGrid').dataSource.read();
পরেরটি আসলে গ্রিডের ডেটা উত্সটি পুনরায় লোড করে। উভয়ের ব্যবহার আপনার প্রয়োজন এবং প্রয়োজন অনুযায়ী করা যেতে পারে।
$("#grd").data("kendoGrid").dataSource.read();
dataSource.read()
read
সার্ভারটির জন্য অনুরোধ করবে এবং কেবল ডেটা উত্স পুনরায় লোড করবে। ইউআই-তে কোনও পরিবর্তন হবে না।refresh
বর্তমান ডাটাসোর্স থেকে গ্রিডে আইটেমগুলি পুনরায় রেন্ডার করবে। এজন্য উভয়েরই প্রয়োজন।