У меня есть KendoUI DataSource на моей странице, что чтение данных (в формате JSON) из метода, мой сценарий:Как добавить новую запись в KendoUI DataSource компонент
<script id="template" type="text/x-kendo-template">
<tr>
<td>#= ID #</td>
<td>#= TITLE #</td>
<td>#= DESC#</td>
</tr>
</script>
<script>
$(document).ready(function() {
// create a template using the above definition
var template = kendo.template($("#template").html());
var datas = function() {
var objects = [];
$.ajax({
type: "POST",
url: "./WebForm1.aspx/GetNoti",
data: {},
async: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
success:
function(response) {
for (var i = 0; i < response.d.length; i++) {
objects.push({ 'ID': response.d[i].ID, 'TITLE': response.d[i].TITLE, 'DESC': response.d[i].DESC });
}
},
});
return objects;
};
var dataSource = new kendo.data.DataSource({
data: datas(),
change: function() { // subscribe to the CHANGE event of the data source
$("#movies tbody").html(kendo.render(template, this.view())); // populate the table
}
});
dataSource.read();
});
</script>
и я хочу другой сценарию setInterval, который вызывает метод, который дает нам новые данные, которые недавно были добавлены в мою базу данных, и показать их в моем источнике данных KendoUI.
я пробовал раньше, как это:
<script>
$(document).ready(function() {
$("#go").click(function() {
setInterval(function() {
var dataSource= new kendo.data.DataSource({
data=function()
{
$.ajax({
type: "POST",
url: "WebForm1.aspx/GetNewNoti",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
for (var i = 0; i < response.d.length; i++) {
dataSource.add({ 'ID': response.d[i].ID, 'TITLE': response.d[i].TITLE, 'DESC': response.d[i].DESC });
};
},
});
},
});
}, 8000);
});
});
</script>
кто-нибудь может мне помочь?
EDIT: я редактировать seccond скрипт так:
$("#go").click(function() {
setInterval(function() {test2(); }, 8000);
});
test2:
function test2() {
var dataSource2 = new kendo.data.DataSource({
data: p(),
change: function() {
$("#movies tbody").html(kendo.render(template, this.view())); }
});
dataSource2.read();
}
и мы имеем р(), как это:
var p = function test() {
var objects = [];
$.ajax({
type: "POST",
url: "./WebForm1.aspx/GetUnCheckNotification",
data: {},
async: false,
contentType: "application/json; charset=utf-8",
dataType: "json"
success: function(response) {
for (var i = 0; i < response.d.length; i++) {
objects.push({ 'ID': response.d[i].ID, 'TITLE':response.d[i].TITLE, 'DESC': response.d[i].DESC });
}
},
});
return objects;
};
этим методом, я нужен способ добавить dataSource2 в datasource (в первом скрипте), есть ли какой-нибудь способ?
почему вы не обновить сетку снова и снова, так что любые данные, присутствующие в базе данных, будут показаны в сетке. –
Представьте, что это как Уведомление .. Я хочу сделать это автоматически .. Я пытаюсь, но я не мог этого сделать .. У вас есть идея ??? – pejman
В случае уведомления получить счетчик существующего источника данных и нового источника данных, если позднее будет больше существующего, тогда вы можете вывести уведомление. –