html使用element ui_Kendo UI for jQuery使用教程:自定义小部件(二)

Kendo UI目前最新提供KendoUI for jQuery、KendoUI for Angular、KendoUI Support for React和KendoUI Support for Vue四个控件。Kendo UI for jQuery是创建现代Web应用程序的完整UI库。

Kendo UI通过继承基本窗口小部件类为您提供创建自定义窗口小部件的选项。

9aebf2666dbf8919b22866c54435c2d9.png

处理事件

1. 将更改事件绑定到您的数据源并处理它。在这里您可以根据从数据源读取的数据来更改DOM,通常这是通过刷新方法完成的。将其公开,以便您或其他人能够在初始化后的某个时刻在小部件上调用它。

// Bind to the change event to refresh thewidget.
that.dataSource.bind("change", function() {
that.refresh();
});

下面的示例演示了小部件代码的外观。请注意,当您绑定到数据源上的change事件时,实际上是绑定到字符串值“ change”。更好的做法是在小部件顶部将它们分配为常量,然后引用该常量,整个DataSource配置也移到自己的方法中。这是因为that表示窗口小部件,因为that是调用对象。您可以将that分配给this对象后,引用that对象的所有窗口小部件属性。

(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 an array or a configuration
that.dataSource = kendo.data.DataSource.create(that.options.dataSource);

// Bind to the change event to refresh thewidget
that.dataSource.bind(CHANGE, function() {
that.refresh();
});
}
});

kendo.ui.plugin(Repeater);

})(jQuery);
–_–>

2. 通过检查that.options的autoBind配置值从数据源获取(如有必要),然后调用that.dataSource.fetch()。请注意fetch和read不同,因为仅当尚未从DataSource读取数据时,它才会填充DataSource。如果在初始化小部件之前在DataSource上调用了read,则不要使DataSource再次读取。

_dataSource: function() {
var that = this;

// Returns the datasource OR creates one ifusing array or configuration.
that.dataSource = kendo.data.DataSource.create(that.options.dataSource);

// Bind to the change event to refresh thewidget.
that.dataSource.bind(CHANGE, function() {
that.refresh();
});

// Trigger read on the dataSource if onehas not happened yet.
if (that.options.autoBind) {
that.dataSource.fetch();
}
}

3. 将autoBind配置添加到小部件上的options对象,并将其默认值设置为true。 Kendo UI中的所有数据绑定窗口小部件在默认情况下都自动绑定。

options: {
name: "Repeater",
autoBind: true
}

带有模板的渲染小部件

1. 小部件输出的HTML会在Kendo UI模板上呈现,它们允许您预编译HTML并将经过评估的数据或表达式注入HTML中,并且DOM片段作为HTML字符串返回。Kendo UI中几乎所有的小部件都允许您指定除小部件使用的默认模板之外的某种模板,为此首先将模板添加到options对象,并将其值设置为空字符串。与其他配置设置相反,请勿在此处设置其默认值。

options: {
name: "Repeater",
autoBind: true,
template: ""
}

2. 通过直接在基本小部件初始化的调用下添加一行来设置默认值,这将预编译用户传入的模板,或使用默认模板。对于此Repeater,写出封装在段落中strong标签,然后引用数据对象。如果我们传递字符串数组,则该数据对象将是一个字符串。如果将对象传递给模板,则默认模板将呈现[objectObject]。

that.template =kendo.template(that.options.template || "

#= data #

")

实施刷新功能

1. 由于绑定到change方法,因此需要实现在数据源更改或直接调用时将调用的refresh公共函数。在refresh方法内部,您将要更改DOM。首先调用that.dataSource.view(),它将为您提供来自DataSource的数据;接下来使用kendoRender并将模板与DataSource data—a.k.a.视图一起传递,Kendo UI窗口小部件就是这样改变DOM的。render方法将数据应用于DataSource并返回HTML字符串。

refresh: function() {
var that = this,
view = that.dataSource.view(),
html = kendo.render(that.template, view);
}

2. 设置that.element的HTML —在其上初始化小部件的元素。如果要处理输入的初始化,并且想用容器转换或包装该输入,请在设置HTML之前在此处添加该逻辑。that.element是jQuery包装的元素,因此您可以直接从其中调用html方法。最终的刷新方法类似于下面示例中演示的方法。

refresh: function() {
var that = this,
view = that.dataSource.view(),
html = kendo.render(that.template, view);

that.element.html(html);
}

3. 在上一步中添加了最后的修饰后,现在您有一个完全数据绑定的小部件。以下示例演示了Repeater小部件的完整代码。

(function() {
var kendo = window.kendo,
ui = kendo.ui,
Widget = ui.Widget,

CHANGE = "change";

var Repeater = Widget.extend({
init: function(element, options) {
var that = this;

kendo.ui.Widget.fn.init.call(that, element,options);
that.template = kendo.template(that.options.template ||"

#= data #

");

that._dataSource();
},
options: {
name: "Repeater",
autoBind: true,
template: ""
},
refresh: function() {
var that = this,
view = that.dataSource.view(),
html = kendo.render(that.template, view);

that.element.html(html);
},
_dataSource: function() {
var that = this;
// Returns the datasource OR creates one if using array or configurationobject.
that.dataSource = kendo.data.DataSource.create(that.options.dataSource);

// Bind to the change event to refresh thewidget.
that.dataSource.bind(CHANGE, function() {
that.refresh();
});

if (that.options.autoBind) {
that.dataSource.fetch();
}
}
});

ui.plugin(Repeater);

})(jQuery);

以下示例使用两个已初始化的窗口小部件。第一个将简单数组作为数据源;第二个使用远程端点、模板和声明式初始化。

#= data.ProductName #

公司名称:北京哲想软件有限公司

北京哲想软件官方网站:cogitosoft.com

北京哲想软件微信公众平台账号:cogitosoftware

北京哲想软件微博:哲想软件

北京哲想软件邮箱:sales@cogitosoft.com

销售(俞先生)联系方式:+86(010)68421378

微信:18610247936     QQ:368531638

9310941e10eb58e6632dd7e436ad85af.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET MVC 个人学习笔记之 Controller传值

2019独角兽企业重金招聘Python工程师标准>>> //ControllerViewBag.Message "Modify this template to jump-start your ASP.NET MVC application."; // View<section class"featured"><div class"content-wrapper"><…

Dapr 和 Spring Cloud 对比分析

很多人都是使用SpringBoot 和 Spring Cloud来开发微服务。Dapr 也是开发微服务的框架&#xff0c;它和Spring Cloud有什么区别呢&#xff0c;其实这不是一个区别的问题&#xff0c;它是不同的时代需要不同的框架。Spring Cloud 是一种产品&#xff0c;提供了分布式应用程序所需…

【C语言简单说】七:自定义函数(2)

刚刚说了如何自定义函数。那只是最简单的形式&#xff0c;那我们现在开始来说函数的返回值。我们先贴上之前的代码&#xff1a; #include<stdio.h> #include<stdlib.h> //头文件下面 void dy(){printf("这里是dy函数\n");} //main函数上面 int main() …

jdk源码分析书籍 pdf_什么?Spring5 AOP 默认使用Cglib?从现象到源码深度分析

推荐阅读&#xff1a;阿里工作十年拿下P8&#xff0c;多亏了这些PDF陪我成长&#xff08;Spring全家桶源码解析Redis实战等&#xff09;​zhuanlan.zhihu.com从入门到熟悉&#xff0c;一步一步带你了解 MySQL 中的「索引」和「锁」​zhuanlan.zhihu.comSpring5 AOP 默认使用 Cg…

Nginx monitor

为什么80%的码农都做不了架构师&#xff1f;>>> 最近在初步研究了一下nginx的监控&#xff0c;主要是想监控一些和业务相关的信息&#xff0c;发现能用的方案不多&#xff0c;主要有如下&#xff1a; 1 监控解析nginx log&#xff1a;ngxtop 官方的解释是可以…

ASP.NET 6 中间件系列 - 执行顺序

这篇文章是 ASP.NET 6 中间件系列文章的第 3 部分&#xff0c;你还可以阅读第1部分和第2部分。我们通过中间件创建的管道是有执行顺序的&#xff0c;执行顺序与中间件的添加顺序是相同的&#xff0c;接下来我们讨论一下为什么要有执行顺序&#xff0c;以及它的重要性。示例项目…

OSChina 周四乱弹 ——程序员怎么撩外国妹子攻略

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单&#xff08;2017&#xff09;请戳&#xff08;这里&#xff09; 【今日歌曲】 冬天之雪 &#xff1a;听歌听到苏菲玛索和刘欢演唱《玫瑰人生》。有网友评论&#xff1a;法语专业的刘欢老师等的就是这一刻。…

【C语言简单说】七:自定义函数(3)

前一节说了返回值的内容&#xff0c;那么这一节就说一下参数的内容 手打码了几章内容了。。。。困。&#xff3e;(&#xffe3;&#xff09;&#xffe3;)《(&#xffe3;&#xff09;&#xffe3;)&#xff3e;困.困.困. 相比看过前一节的知道我说自定义函数如果你要做一个运…

WireShare抓包在ssl协议里面提示(Level: Fatal, Description: Protocol Version)

1 问题 在后台访问部分链接的时候抓包&#xff0c;客户端发了client hello包&#xff0c;但是没有收到Server hello包&#xff0c; 提示&#xff1a;Alert(Level: Fatal, Description: Handshake Failure ) 包文如下 2 解决办法 是因为客户端的ssl协议版本和链接地址环境ss…

对于 APM 用户的一次真实调查分析(下)

一.前言 对 APM 用户的一次真实调查分析&#xff08;上&#xff09;中&#xff0c;我们主要聊到了现阶段国外 APM 行业对各个企业的渗透率、大部分使用 APM 工具的企业规模以及 APM 工具在用户心中的地位等问题&#xff0c;有兴趣的朋友可以点击链接观看。 我们本次继续顺着这个…

linux cpu核数查看_Linux日常必备的 8 个小技能

身为一个码农&#xff0c;日常工作中与我们打交道次数较多的操作系统除了Windows和Mac OS 之外&#xff0c;还有一个就是 Linux。今天偶尔有空翻越了之前码代码时期汇总的一些小技巧发现挺实用的&#xff0c;故分享给大家&#xff0c;希望能对大伙有一定的帮助。1. 如何查看系统…

NotificationManagerService使用详解与原理分析(一)

概况 Android在4.3的版本中(即API 18)加入了NotificationListenerService&#xff0c;根据SDK的描述(AndroidDeveloper)可以知道&#xff0c;当系统收到新的通知或者通知被删除时&#xff0c;会触发NotificationListenerService的回调方法。同时在Android 4.4 中新增了Notifica…

【C语言简单说】八:分支结构之if(1)

今天貌似更了很多章了&#xff0c;现在感觉累觉不爱。。。 ┐(—__—)┌ 你说我有啥米办法咧~&#xff08;要不叫别人替我更一下&#xff1f;&#xff09; 继续更。。。 这一节我们来说一下if语句&#xff1b;这个东西可是很常用的呀&#xff1b;在此之前我们来举个例子&…

ASP.NET 6 中间件系列 - 自定义中间件类

这篇文章是 ASP.NET 6 中间件系列文章的第2部分&#xff0c;点击这里可以阅读第1部分。在上一篇文章中&#xff0c;我们讨论了什么是中间件&#xff0c;它的作用是什么&#xff0c;以及在 ASP.NET 6 应用管道中添加中间件的简单方法。在这篇文章中&#xff0c;我们将在这些基础…

如何在IE浏览器里面定位到关键字的位置(页面代码)和这个关键字位置模块的请求

1 问题 比如用IE浏览器,打开一个页面,如何定位到关键字的具体位置,以及这个位置请求是什么?可能这个请求不是主页面的请求,因为我们知道页面html里面可以嵌套很多Frame(框架),把页面分割成很多块,然而每个Frame(框架)里面可以再嵌套一个url,有时候我们需要找到这个请求…

Java并发编程-原子性变量

image.png1. 原子性布尔 AtomicBoolean AtomicBoolean 类为我们提供了一个可以用原子方式进行读和写的布尔值&#xff0c;它还拥有一些先进的原子性操作&#xff0c;比如 compareAndSet()。AtomicBoolean 类位于 java.util.concurrent.atomic 包&#xff0c;完整类名是为 java.…

【C语言简单说】八:分支结构之if...else...(2)

上一节我们说了if的基本用法&#xff0c;这一小节我们来说明if…else…的用法 首先惯例举例子&#xff1a; 你今天早上饿了&#xff0c;打算去吃包子&#xff0c;可是没有包子了&#xff0c;你打算去吃米粉。 你昨天早上下雨了&#xff0c;带伞出门&#xff0c;结果没找到&a…

Java集合之LinkedList

上一篇写的是ArrayList&#xff0c;这一篇写一下LinkedList. 开宗明义&#xff0c;因为Vector已经被废弃了&#xff0c;所以list家族只剩下ArrayList和LinkedList两兄弟了&#xff0c;这里直接对比一下二位&#xff1a; ArrayList基于动态数组的实现&#xff0c;它长于随机访问…

由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...

一、前言本篇是Android SDK开发艺术探索系列的第四篇文章。介绍了通过流式API设计思想优雅地实现SDK的自定义选项配置需求。目录概览&#xff1a;一、前言 二、SDK自定义配置2.1、什么是自定义配置2.2、设计一个配置方法 三、结语系列文章&#xff1a;Android SDK开发艺术探索&…

C#中切片语法糖的使用

例子首先我们看这样一个例子&#xff0c;有这样一个数组string [] lst new string[] { "1", "2", "3", "4", "5", "6", "7" };我们怎么获取它的最后一个值&#xff0c; 传统方法是这样写的&#xff0c…