Kendo UI: 我可以使用 DataSource 将数据与标准 HTML 元素同步吗
Kendo UI: Can I use a DataSource to sync data with standard HTML elements
我在组合两个 kendo 想法时遇到了问题,我找到了各自的例子,但目前还没有组合的例子。
我有一个包含简单 HTML 元素(文本框、下拉列表等)的页面。我已经使用这个 kendo 示例来 link 视图模型。
http://demos.telerik.com/kendo-ui/mvvm/elements
这里一切正常。我可以更新视图、更改值并查看视图模型中反映的所有内容。
我有一个负责此数据的远程服务。我按照这个 kendo 示例为这个遥控器创建了一个数据源。
http://docs.telerik.com/kendo-ui/framework/datasource/basic-usage
我定义了一个读取和更新传输(因为这些是我唯一需要的),并且我有一个为数据定义的模式,具有有效的 ID。所有这些也都有效。当我手动调用read时,DataSource向服务发出读取请求,返回数据。
我见过很多将数据源绑定到 kendo 网格、下拉列表等的示例。我不知道如何将从我的数据源返回的数据绑定到我的页面的元素。
我什至无法通过使用 Chrome 开发工具进行探索来破解一些东西,尽管最后我想要的不仅仅是破解。我希望,无论解决方案是什么,它都适用于我正在处理的整个网站。
最好的方法是什么?我觉得我误解了这应该如何工作。
在你的第一个 link 到 kendo dojo 中,我在 viewModel
中创建了一个函数,其中包含 ajax 调用以从后端
检索值
getData: function () {
$.ajax({
url: "http://demos.telerik.com/kendo-ui/service/Products", //replace this with your url to get the data from backend
type: "GET",
dataType: "jsonp" // replace this with the type suit your need maybe json or etc (just use this as example to fire the success event
}).success(function (data) {
//asumme this dummy data is the data coming from backend
var dummyData = {
textValue: "new Text value",
textareaValue: "new Textarea value",
checkboxValue: true,
radioValue: "new Apple",
checkboxListValue: ["Banana"],
multipleSelectValue: ["Banana"],
fruits: ["Apple", "Banana", "Orange"],
selectValue: "Orange"
};
//set the viewModel value with the data coming from backend
viewModel.set("textValue", dummyData.textValue);
viewModel.set("textareaValue", dummyData.textareaValue);
viewModel.set("checkboxValue", dummyData.checkboxValue);
viewModel.set("radioValue", dummyData.radioValue);
viewModel.set("checkboxListValue", dummyData.checkboxListValue);
viewModel.set("multipleSelectValue", dummyData.multipleSelectValue);
viewModel.set("selectValue", dummyData.selectValue);
//after you set the value, because the viewModel already bind with the component/value of the kendo widget on the HTML side the textbox/dropdown/checkbox will automatically updated
});
}
我还在 html 上创建了一个按钮来触发 getData 函数
<tr>
<td><span data-role="button" data-bind="events:{click:getData}" />
<h4>Click this to do ajax call </h4>
</td>
</tr>
看到这个 dojo,单击按钮,您将看到数据从(文本值更新为新文本值)
我在组合两个 kendo 想法时遇到了问题,我找到了各自的例子,但目前还没有组合的例子。
我有一个包含简单 HTML 元素(文本框、下拉列表等)的页面。我已经使用这个 kendo 示例来 link 视图模型。
http://demos.telerik.com/kendo-ui/mvvm/elements
这里一切正常。我可以更新视图、更改值并查看视图模型中反映的所有内容。
我有一个负责此数据的远程服务。我按照这个 kendo 示例为这个遥控器创建了一个数据源。
http://docs.telerik.com/kendo-ui/framework/datasource/basic-usage
我定义了一个读取和更新传输(因为这些是我唯一需要的),并且我有一个为数据定义的模式,具有有效的 ID。所有这些也都有效。当我手动调用read时,DataSource向服务发出读取请求,返回数据。
我见过很多将数据源绑定到 kendo 网格、下拉列表等的示例。我不知道如何将从我的数据源返回的数据绑定到我的页面的元素。
我什至无法通过使用 Chrome 开发工具进行探索来破解一些东西,尽管最后我想要的不仅仅是破解。我希望,无论解决方案是什么,它都适用于我正在处理的整个网站。
最好的方法是什么?我觉得我误解了这应该如何工作。
在你的第一个 link 到 kendo dojo 中,我在 viewModel
中创建了一个函数,其中包含 ajax 调用以从后端
getData: function () {
$.ajax({
url: "http://demos.telerik.com/kendo-ui/service/Products", //replace this with your url to get the data from backend
type: "GET",
dataType: "jsonp" // replace this with the type suit your need maybe json or etc (just use this as example to fire the success event
}).success(function (data) {
//asumme this dummy data is the data coming from backend
var dummyData = {
textValue: "new Text value",
textareaValue: "new Textarea value",
checkboxValue: true,
radioValue: "new Apple",
checkboxListValue: ["Banana"],
multipleSelectValue: ["Banana"],
fruits: ["Apple", "Banana", "Orange"],
selectValue: "Orange"
};
//set the viewModel value with the data coming from backend
viewModel.set("textValue", dummyData.textValue);
viewModel.set("textareaValue", dummyData.textareaValue);
viewModel.set("checkboxValue", dummyData.checkboxValue);
viewModel.set("radioValue", dummyData.radioValue);
viewModel.set("checkboxListValue", dummyData.checkboxListValue);
viewModel.set("multipleSelectValue", dummyData.multipleSelectValue);
viewModel.set("selectValue", dummyData.selectValue);
//after you set the value, because the viewModel already bind with the component/value of the kendo widget on the HTML side the textbox/dropdown/checkbox will automatically updated
});
}
我还在 html 上创建了一个按钮来触发 getData 函数
<tr>
<td><span data-role="button" data-bind="events:{click:getData}" />
<h4>Click this to do ajax call </h4>
</td>
</tr>
看到这个 dojo,单击按钮,您将看到数据从(文本值更新为新文本值)