Kendo UI开发教程:初始化Data属性

前面在介绍准备Kendo UI开发环境时我们使用jQuery的方法将一个HTML元素转换成一个Kendo UI控件: $(?#datepicker?).kendoDatePicker();除了使用jQuery插件的方法来初始化方法外,每个Kendo 控件还可以通过data属性来初始化,此时你需要设置data的role属性,然后调用kendo.init方法。

使用初始化Data属性的方法在页面上包含有大量Kendo UI控件时非常便利。 首先, 组件的配置包含在目标元素中,第二无需首先查找每个元素然后调用jQuery方法,你只需调用一次kendo.init()方法。

Kendo UI Mobile应用通常使用Data属性来初始化。如下例使用data 属性来初始化一个UI组件:

1
2
3
4
5
6
< div id = "“container”" >
< input data-role = "“numerictextbox”" >
</ div >
< script >
kendo.init($(“#container”));
</ script >
>Kendo UI开发教程

其中方法kendo.init($(?#container?)) 会查找所有包含有data-role属性的元素,然后初始化这些Kendo UI组件。 每个kendo UI组件的role的值为该UI组件名称的小写名字,比如?autocomplete?或?dropdownlist?。

缺省情况下,kendo.init 只会初始化Kendo UI Web组件和Kendo UI DataViz组件(按这个顺序)。 而Kendo UI Mobile应用 首先初始化Kendo UI Mobile组件,然后是Kendo UI Web组件,最后是Kendo UI DataViz组件。 这意味着data-role=?listview? 在Mobile应用中会缺省初始化为 Kendo UI Mobile Listview。 然而可以通过指明组件全称的方法在修改这个缺省初始化顺序。

比如:在Mobile应用中 指明使用Kendo UI Web的listview:

1
2
3
4
5
6
7
< div data-role = "“view”" >
<!--– specify the Kendo UI Web ListView widget –-->
< div data-role = "“kendo.ui.ListView”" ></ div >
</ div >
< script >
var app = new kendo.mobile.Application();
</ script >
配置

每个组件可以通过Data属性来进行配置,对于配置的属性,只需在属性名前加上data-前缀就可以做为目标元素的属性进行配置。比如 data-delay=?100?。 对于一些使用Camel-cased 的属性则是通过添加“-” ,比如AutoComplete的ignoreCase 的属性可以通过 data-ignore-case来设置。而对于一些已经是使用data前缀的属性则无需再添加data-前缀。比如dataTextField属性可以通过data-text-field属性来配置,dataSource属性可以通过data-source属性来配置。对于一些复杂的配置可以通过JavaScript 对象字面量来配置,比如:data-source=?{data: [{name: ?John Doe?},{name: ?Jane Doe?]}?.

如下例:

1
2
3
4
5
6
7
< div id = "“container”" >
< input data-role = "“autocomplete”" data-ignore-case = "“true”" data-text-field = "“name”" data-source = "“{data:" [{ name: = "" john = "" doe’},{ name: = "" jane = "" doe’}]}”="">
</ div >
< script >
kendo.init($(“#container”));
 
</ script >
>Kendo UI开发教程
事件

你也可以通过data属性添加对Kendo UI组件的事件处理,属性的值被当成一个JavaScript函数,其作用域为全局。

如下例:

1
2
3
4
5
6
7
8
9
< div id = "“container”" >
< input data-role = "“numerictextbox”" data-change = "“numerictextbox_change”" >
</ div >
< script >
function numerictextbox_change(e) {
// Handle the “change” event
}
kendo.init($(“#container”));
</ script >

事件处理函数也可以为一个成员函数,比如 foo.bar 可以看出为foo 对象的 bar 方法。例如:

1
2
3
4
5
6
7
8
9
10
11
< div id = "“container”" >
< input data-role = "“numerictextbox”" data-change = "“handler.numerictextbox_change”" >
</ div >
< script >
var handler = {
numerictextbox_change: function (e) {
// Handle the “change” event
}
};
kendo.init($(“#container”));
</ script >
数据源

支持数据绑定的UI组件的数据源也可以通过data-source 属性来指定。 这个属性可以为一个JavaScript对象,一个数组或是一个全局变量。

例如:使用JavaScript对象作为数据源。

1
2
3
4
5
6
< div id = "“container”" >
< input data-role = "“autocomplete”" data-source = "“{data:[‘One’," ‘two’]}”="">
</ div >
< script >
kendo.init($(“#container”));
</ script >

使用JavaScript数组作为数据源。

1
2
3
4
5
6
< div id = "“container”" >
< input data-role = "“autocomplete”" data-source = "“[‘One’," ‘two’]”="">
</ div >
< script >
kendo.init($(“#container”));
</ script >

使用一个可以全局访问的变量作为数据源。

1
2
3
4
5
6
7
8
9
< div id = "“container”" >
< input data-role = "“autocomplete”" data-source = "“dataSource”" >
</ div >
< script >
var dataSource = new kendo.data.DataSource( {
data: [ “One”, “Two” ]
});
kendo.init($(“#container”));
</ script >
模板

模板也可以通过Data属性来设置,属性的值代表用来定义模板的Script元素的Id。比如:

1
2
3
4
5
6
7
8
9
< div id = "“container”" >
< input data-role = "autocomplete" data-source = "[{firstName:'John', lastName: 'Doe'}, {firstName:'Jane', lastName: 'Doe'}]" data-text-field = "firstName" data-template = "template" >
</ div >
< script id = "template" type = "text/x-kendo-template" >
< span >#: firstName # #: lastName #</ span >
</ script >
< script >
kendo.init($("#container"));
</ script >
本文转载自Kendo UI中文网
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值