当前位置: 首页 > 工具软件 > web-poker > 使用案例 >

html5 步骤 ui,HTML5 Web app开发工具Kendo UI Web教程:创建自定义组件(二)

高正初
2023-12-01

Kendo UI Web包含数百个创建HTML5 web app的必备元素,包括UI组件、数据源、验证、一个MVVM框架、主题、模板等。

在前面的文章《HTML5 Web app开发工具Kendo UI Web教程:创建自定义组件(二)》中,对在Kendo UI Web中如何创建自定义组件作出了一些基础讲解,下面将继续前面的内容。

使用一个数据源

现在如果想要实现一个数据源组件或是MVVM aware模式,需要再执行一些其他的步骤。 在下面将会创建一个DataSource aware组件,要使DataSource aware有数据源,首先需要在DataSource基础对象上使用create convenience方法。

创建或初始化数据源:

that.dataSource = kendo.data.DataSource.create(that.options.dataSource);

这一行代码主要是为你的组件数据源提供了比较灵活的方式,这个样子你就不用创建一个新的数据源来绑定到组件上。

数据源作为数组:

$("#div").kendoRepeater({

dataSource: ["Item 1", "Item 2", "Item 3"]

});

如果你传递一个简单的数组, kendo.data.DataSource.create方法将会为你创建一个新的基于数组数据的DataSource,并返回到that.dataSource。你也可以通过指定它内嵌的配置值来新建一个datasource。

将数据源作为配置对象:

$("#div").kendoRepeater({

dataSource: {

transport: {

read: {

url: "http://mydomain/customers"

}

}

}

});

这里正在设置数据源的配置,但是并没有创建一个实例。这个kendo.data.DataSource.create(that.options.dataSource)将会获得这个配置对象,并用指定的配置返回一个新的DataSource实例。现在已经提供了相同的灵活性,在我们自己的组件中尽可能多的方式对repeater组件指定DataSource。

Handling Events:

接下来需要做的就是绑定到DataSource change事件并处理它。在这里你将会基于从DataSource读取的数据改变你的DOM。通常可以用一个刷新的方法。一般都会公用这个刷新的方法,主要由于在初始化后,你和其他人可能会在组件或某个节点上调用这个高性能。

绑定到Change Event:

// bind to the change event to refresh the widget

that.dataSource.bind("change", function() {

that.refresh();

});

有Change Event的组件:

(function($) {

var kendo = window.kendo,

ui = kendo.ui,

Widget = ui.Widget,

CHANGE = "change";

var Repeater = kendo.ui.Widget.extend({

init: function(element, options) {

var that = this;

kendo.ui.Widget.fn.init.call(that, element, options);

// initialize or create dataSource

that._dataSource();

},

options: {

name: "Repeater"

},

_dataSource: function() {

var that = this;

// returns the datasource OR creates one if using array or configuration

that.dataSource = kendo.data.DataSource.create(that.option.dataSource);

// bind to the change event to refresh the widget

that.dataSource.bind(CHANGE, function() {

that.refresh();

});

}

});

kendo.ui.plugin(Repeater);

})(jQuery);

现在需要向_dataSource方法添加一些东西,如果需要的话将会从DataSource中提取。通过检查that.options的自动绑定配置值可以实现。接下来是调用that.dataSource.fetch(),需要注意的是,这个fetch和read是不同的,如果这个DataSource还没有被读取,fetch会只会填充DataSource。如果在组件被初始化之前,在DataSource上read已经被调用了的话,那么DataSource就不会再次被读取了。

_dataSource: function() {

var that = this;

// returns the datasource OR creates one if using array or configuration

that.dataSource = kendo.data.DataSource.create(that.options.dataSource);

// bind to the change event to refresh the widget

that.dataSource.bind(CHANGE, function() {

that.refresh();

});

// trigger a read on the dataSource if one hasn't happened yet

if (that.options.autoBind) {

that.dataSource.fetch();

}

}

这个自动绑定配置选项还不存在,现在需要添加它到组件上的选项对象中,并赋予一个默认的值为true。在默认的情况下,Kendo UI中所有的DataBound组件都会自动绑定。

为选项添加AutoBind:

options: {

name: "Repeater",

autoBind: true

}

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com

文章转载自:慧都控件

 类似资料: