`

Ext使用总结(一)

阅读更多

 

一、获取元素(Getting Elements)

1.Ext.get

var el = Ext.get('myElementId');//获取元素,等同于document.getElementById('myElementId');//会缓存

2. Ext.fly

var el = Ext.fly('myElementId')//不需要缓存。

注:享元模式(Flyweight Design Pattern)是一种节省内存的模式,该模式的大概原理是建立单个全体对象然后不断反复使用它。

3.Ext.getDom
var elDom = Ext.getDom('elId'); // 依据id来查dom节点
var elDom1 = Ext.getDom(elDom); // 依据dom节点来查dom节点

 

二、CSS元素


4.addClass
Ext.fly('elId').addClass('myCls'); // 加入元素的'myCls'的样式

5.radioClass

Ext.fly('elId').radioClass('myCls');//添加一个或多个className到这个元素,并移除其所有侧边(siblings)节点上的同名样式。

6.removeClass

Ext.fly('elId').removeClass('myCls'); // 移除元素的样式

7.toggleClass

Ext.fly('elId').toggleClass('myCls'); // 加入样式
Ext.fly('elId').toggleClass('myCls'); // 移除样式
Ext.fly('elId').toggleClass('myCls'); // 再加入样式

 8.hasClass

if (Ext.fly('elId').hasClass('myCls')) {//判断是否已加上这个样式
// 是有样式的……
}

10.replaceClass

 Ext.fly('elId').replaceClass('myClsA', 'myClsB');//替换样式

11.getStyle

var color = Ext.fly('elId').getStyle('color');//返回该元素的统一化当前样式和计算样式。
var zIndx = Ext.fly('elId').getStyle('z-index');//返回该元素的统一化当前样式和计算样式。

12.setStyle
Ext.fly('elId').setStyle({
display : 'block',
overflow : 'hidden',
cursor : 'pointer'

});//设置元素的样式,也可以用一个对象参数包含多个样式。

13.getColor

Ext.fly('elId').getColor('color');//为指定的CSS属性返回CSS颜色

14.setOpacity

 Ext.fly('elId').setOpacity(.45, true);//设置元素的透明度。

15.clearOpacity

 Ext.fly('elId').clearOpacity();//清除这个元素的透明度设置

 

 

三、Dom游历

16.Ext.fly('elId').select('li:nth-child(2n)').addClass('red');

17.is 测试当前元素是否与传入的选择符相符一致。

var el = Ext.get('elId');
if (el.is('p.myCls')) {
	// 条件成立
}

 

18.findParent

定位于此节点,以此节点为起点,向外围搜索外层的父节点,搜索条件必须符合并匹配传入的简易选择符。

Ext.fly('elId').findParent('div'); // 返回dom节点
Ext.fly('elId').findParent('div', 4); // 查找4个节点
Ext.fly('elId').findParent('div', null, true); // 返回Ext.Element

 19.findParentNode

定位于此节点的“父节点”,以此节点的“父节点”为起点,向外围搜索外层的“父父”节点,搜索条件必须符合并匹配传入的简易选择符。
Ext.fly('elId').findParentNode('div');

 20.up

沿着DOM,向外围搜索外层的“父父”节点,搜索条件必须符合并匹配传入的简易选择符。
Ext.fly('elId').up('div');
Ext.fly('elId').up('div', 5); // 限5层的内查找

 21.select

传入一个CSS选择符的参数,然后依据该CSS选择符从当前元素下面,形成期待匹配子节点的集合,也就是“选择”的操作,最后以一个Ext.CompositeElement类型的组合元素的形式返回。如果以Ext.select()调用表示从document可是搜索。
// 返回结果的CompositeElement
Ext.fly('elId').select('div:nth-child(2)');
// 返回数组
Ext.fly('elId').select('div:nth-child(2)',
    true);

// 整个document都会搜索
Ext.select('div:nth-child(2)');

 22.query

进行一次query的查询,返回DOM 节点组成的数组。可选地第二参数设置为查询的起点,如不指定则为 document。

// 返回dom节点组成的数组
Ext.query('div:nth-child(2)'); 

23.child

基于送入的选择符,不限定深度进行搜索,符合的话选取单个子节点。

Ext.fly('elId').child('p.highlight');  // 返回的类型是Ext.Element
Ext.fly('elId').child('p.highlight', true);  // 返回dom节点

 24.down

基于该选择符,"直接"选取单个子节点。
Ext.fly('elId').down('span');  // 返回的类型是Ext.Element
Ext.fly('elId').down('span', true);  // 返回dom节点

 

25.parent

返回当前节点的那个父节点,可选地可送入一个期待的选择符。

// 返回父节点,类型是Ext.Element
Ext.fly('elId').parent();  
// 返回父节点,类型是html dom
Ext.fly('elId').parent("", true);
// 返回父级节点,但一定要是div的,找到就返回,类型是Ext.Element
Ext.fly('elId').parent("div");

 26.next

获取下一个侧边节点,跳过文本节点。可选地可送入一个期待的选择符。
// 返回下一个侧边节点,类型是Ext.Element
Ext.fly('elId').next();
// 返回下一个侧边节点,类型是html dom
Ext.fly('elId').next("", true);
// 返回下一个侧边节点,但一定要是div的,找到就返回,类型是Ext.Element
Ext.fly('elId').next("div");

 27.prev

获取上一个侧边节点,跳过文本节点。可选地可送入一个期待的选择符。
// 返回上一个侧边节点,类型是Ext.Element
Ext.fly('elId').prev();
// 返回上一个侧边节点,类型是html dom
Ext.fly('elId').prev("", true);
// 返回上一个侧边节点,但一定要是div的,找到就返回,类型是Ext.Element
Ext.fly('elId').prev("div");

 28.first

获取第一个侧边节点,跳过文本节点。可选地可送入一个期待的选择符。

// 返回第一个侧边节点,类型是Ext.Element
Ext.fly('elId').first();
// 返回第一个侧边节点,类型是html dom
Ext.fly('elId').first("", true);
// 返回第一个侧边节点,但一定要是div的,找到就返回,类型是Ext.Element
Ext.fly('elId').first("div");

 29.last

获取最后一个侧边节点,跳过文本节点。可选地可送入一个期待的选择符。
// 返回最后一个侧边节点,类型是Ext.Element
Ext.fly('elId').last();
// 返回最后一个侧边节点,类型是html dom
Ext.fly('elId').last("", true);
// 返回最后一个侧边节点,但一定要是div的,找到就返回,类型是Ext.Element
Ext.fly('elId').last("div");

 

 四、DOM操控(DHTML常见的一项任务就是DOM元素的增、删、改、查)

 30.appendChild

把送入的元素归为这个元素的子元素。
var el = Ext.get('elId1');
// 用id指定
Ext.fly('elId').appendChild('elId2');
// Ext.Element添加
Ext.fly('elId').appendChild(el);
// 选择符组合地添加
Ext.fly('elId').appendChild(['elId2','elId3']);
// 直接添加dom节点
Ext.fly('elId').appendChild(el.dom);
// 添加CompositeElement,一组的div
Ext.fly('elId').appendChild(Ext.select('div'));  

31.appendTo

把这个元素添加到送入的元素里面。

var el = Ext.get('elId1');	
// 'elId'添加到'elId2'里面
Ext.fly('elId').appendTo('elId2'); 
Ext.fly('elId').appendTo(el);  //
    添加到Ext.Element el

 32.insertBefore

传入一个元素的参数,将其放置在当前元素之前的位置。
var el = Ext.get('elId1');	

// dom节点在前面插入
Ext.fly('elId').insertBefore('elId2');
//Ext.Element el在前面插入
Ext.fly('elId').insertBefore(el);

 33.insertAfter

传入一个元素的参数,将其放置在当前元素之后的位置。
var el = Ext.get('elId1');	

// dom节点在后面插入
Ext.fly('elId').insertAfter('elId2');
// Ext.Element el在后面插入

Ext.fly('elId').insertAfter(el);

34.insertFirst

可以是插入一个元素,也可以是创建一个元素(要创建的话请使用“DomHelper配置项对象”作为参数传入),总之,这个元素作为当前元素的第一个子元素出现。

var el = Ext.get('elId1');	


// 插入的dom节点作为第一个元素
Ext.fly('elId').insertFirst('elId2');  
// 插入的Ext.Element作为第一个元素
Ext.fly('elId').insertFirst(el);
		
// 用DomHelper配置项创建新节点,新节点会作为第一个子元素被插入。 
Ext.fly('elId').insertFirst({
	tag: 'p',
	cls: 'myCls',
	html: 'Hi I am the new first child'

});

35.replace

用于当前这个元素替换传入的元素。
var el = Ext.get('elId1');	
// 'elId'去替换'elId2'
Ext.fly('elId').replace('elId2'); 
// 'elId'去替换'elId1'
Ext.fly('elId').replace(el);

36.replaceWith

用传入的元素替换这个元素。参数可以是新元素或是要创建的DomHelper配置项对象。

var el = Ext.get('elId1');	
Ext.fly('elId').replaceWith('elId2');  // 'elId2'替换掉'elId'.
Ext.fly('elId').replaceWith(el);  //
    'elId1'替换掉'elId'
		
// 用DomHelper配置项创建新节点,并用该节点换掉‘elId’。
Ext.fly('elId').replaceWith({
	tag: 'p',
	cls: 'myCls',		
	html: 'Hi I have replaced elId'
});

 

 

五、DomHelper配置项

37.createChild

传入一个DomHelper配置项对象的参数,将其创建并加入到该元素。
var el = Ext.get('elId');
var dhConfig = {
	tag: 'p',
	cls: 'myCls',
	html: 'Hi I have replaced elId'
};
// 创建新的节点,放到'elId'里面
el.createChild(dhConfig); 
// 创建新的节点,居el第一个子元素之前
el.createChild(dhConfig, el.first());

38.wrap

创建一个新的元素,包裹在当前元素外面。

Ext.fly('elId').wrap(); // div包着elId	
// 用新建的一个元素来包着elId
Ext.fly('elId').wrap({
	tag: 'p',
	cls: 'myCls',		
	html: 'Hi I have replaced elId'
});

 

六、Html片断

38.insertHtml

插入HTML片断到这个元素。至于要插入的html放在元素的哪里,你可指定beforeBegin, beforeEnd, afterBegin, afterEnd这几种。第二个参数是插入HTML片断,第三个参数是决定是否返回一个Ext.Element类型的DOM对象。

Ext.fly('elId').insertHtml(
	'beforeBegin',
	'<p><a href="anotherpage.html'>点击我</a></p>'

); // 返回dom节点
Ext.fly('elId').insertHtml(
	'beforeBegin',
	'<p><a href="anotherpage.html'>点击我</a></p>',
	true

); // 返回Ext.Element

39.remove

从DOM里面移除当前元素,并从缓存中删除。.

Ext.fly('elId').remove(); //
                        elId在缓存和dom里面都没有

40.removeNode

移除document的DOM节点。如果是body节点的话会被忽略。

Ext.removeNode(node); // 从dom里面移除(HTMLElement)

 

 

七、Ajax

41.load

直接访问Updater的Ext.Updater.update()方法(相同的参数)。参数与Ext.Updater.update()方法的一致。

Ext.fly('elId').load({url: 'serverSide.php'})

42.getUpdater

获取这个元素的UpdateManager。

var updr = Ext.fly('elId').getUpdater();
updr.update({
        url: 'http://myserver.com/index.php',
        params: {
            param1: "foo",
            param2: "bar"
        }
});

 

八、事件控制Event Handling

43.addListener/on

为此元素加入一个事件处理函数。on()是其简写方式。简写方式作用等价,写代码时更省力。

var el = Ext.get('elId');
el.on('click', function(e,t) {
	// e是一个标准化的事件对象(Ext.EventObject)

	// t就是点击的目标元素,这是个Ext.Element.
	// 对象指针this也指向t			
});

44.removeListener/un

从这个元素上移除一个事件处理函数。un()是它的简写方式。

var el = Ext.get('elId');
el.un('click', this.handlerFn);
// 或
el.removeListener('click', this.handlerFn);

45.Ext.EventObject

EventObject呈现了统一各浏览器的这么一个事件模型,并尽量符合W3C的标准方法。

// e它不是一个标准的事件对象,而是Ext.EventObject。
function handleClick(e){ 
    e.preventDefault();
    var target = e.getTarget();
    ...
}

var myDiv = Ext.get('myDiv');
myDiv.on("click", handleClick);
// 或
Ext.EventManager.on('myDiv', 'click', handleClick);
Ext.EventManager.addListener('myDiv', 'click', handleClick);

 

 

 

 九、高级事件功能

46.委托delegation

要使用事件委托的方式代替,在容器身上登记一个事件处理器,按照依附的逻辑选择:

Ext.fly('actions').on('click, function(e,t) {
	switch(t.id) {
		case ''btn-edit':
		// 处理特定元素的事件具体过程
		break;
		case 'btn-delete':
		// 处理特定元素的事件具体过程
		break;
		case 'btn-cancel':
		// 处理特定元素的事件具体过程
		break;
	}
});

 

47.委托化delegate

你在登记事件的处理器的时候可以加入配置这个选项。一个简易选择符,用于过滤目标元素,或是往下一层查找目标的子孙。

el.on('click', function(e,t) {
    // 执行事件具体过程

}, this, {
    // 对子孙'clickable'有效
    delegate: '.clickable' 
});

48.翻转hover

这是一个Ext的翻转菜单的实例:

// handles when the mouse enters the element	
function enter(e,t){
    t.toggleClass('red');
}
// handles when the mouse leaves the element
function leave(e,t){
    t.toggleClass('red');
}
// subscribe to the hover

el.hover(over, out);

49.移除事件句柄removeAllListeners

在该元素身上移除所有已加入的侦听器。

el.removeAllListeners();

50.是否一次性触发single

你在登记事件的处理器的时候可以加入配置这个选项。true代表为事件触发后加入一个下次移除本身的处理函数。

el.on('click', function(e,t) {
    // 执行事件具体过程
}, this, {
    single: true // 触发一次后不会再执行事件了

});

51.缓冲buffer

你在登记事件的处理器的时候可以加入配置这个选项。若指定一个毫秒数会把该处理函数安排到Ext.util.DelayedTask延时之后才执行。如果事件在那个事件再次触发,则原处理器句柄将不会被启用,但是新处理器句柄会安排在其位置。

el.on('click', function(e,t) {
    // 执行事件具体过程

}, this, {
    buffer: 1000 // 重复响应事件以一秒为时间间隔
});

52.延时delay

你在登记事件的处理器的时候可以加入配置这个选项。制定触发事件后处理函数延时执行的时间。

el.on('click', function(e,t) {
    // 执行事件具体过程

}, this, {
    // 延迟事件,响应事件后开始计时(这里一秒)
    delay: 1000 
    
});

53.目标target

你在登记事件的处理器的时候可以加入配置这个选项。如果你想另外指定另外一个目标元素,你可以在这个配置项上面设置。这可保证在事件上报阶段中遇到这个元素才会执行这个处理函数。

el.on('click', function(e,t) {
    // 执行事件具体过程
}, this, {
    // 遇到里头的第一个'div'才会触发事件
    target: el.up('div') 
});

 

 

 

十、尺寸&大小

54.getHeight

返回元素的偏移(offset)高度。

var ht = Ext.fly('elId').getHeight();

55.getWidth

返回元素的偏移(offset)宽度。

var wd = Ext.fly('elId').getWidth();

56.setHeight

设置元素的高度。

Ext.fly('elId').setHeight();

57.setWidth

设置元素的宽度。

Ext.fly('elId').setWidth();

58.getBorderWidth

返回指定边(side(s))的padding宽度。

var bdr_wd = Ext.fly('elId').getBorderWidth('lr');

59.getPadding

可以是t, l, r, b或是任何组合。例如,传入lr的参数会得到(l)eft padding +(r)ight padding。

var padding = Ext.fly('elId').getPadding('lr');

60.clip

保存当前的溢出(overflow),然后进行裁剪元素的溢出部分 - 使用unclip()来移除。

Ext.fly('elId').clip();

61.unclip

在调用clip()之前,返回原始的裁剪部分(溢出的)。

Ext.fly('elId').unclip();

62.isBorderBox

测试不同的CSS规则/浏览器以确定该元素是否使用Border Box。

if (Ext.isBorderBox) {
    // 
}

 

 

十一、定位

 

63.getX

返回元素相对于页面坐标的X位置。元素必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false)。

var elX = Ext.fly('elId').getX()

64.getY

返回元素相对于页面坐标的Y位置。元素必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false)。

var elY = Ext.fly('elId').getY()

65.getXY

返回元素当前页面坐标的位置。元素必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false)。

var elXY = Ext.fly('elId').getXY() // elXY是数组

66.setX

返回元素相对于页面坐标的X位置。元素必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false)。

Ext.fly('elId').setX(10)

67.setY

返回元素相对于页面坐标的Y位置。元素必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false)。

Ext.fly('elId').setY(10)

68.setXY

返回元素当前页面坐标的位置。元素必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false)。

Ext.fly('elId').setXY([20,10])

69.getOffsetsTo

返回当前元素与送入元素的距离。这两个元素都必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false)。

var elOffsets = Ext.fly('elId').getOffsetsTo(anotherEl);

70.getLeft

获取左边的X坐标。

var elLeft = Ext.fly('elId').getLeft();

71.getRight

获取元素右边的X坐标(元素X位置 + 元素宽度)。

var elRight = Ext.fly('elId').getRight();

72.getTop

获取顶部Y坐标。

var elTop = Ext.fly('elId').getTop();

73.getBottom

获取元素的底部Y坐标(元素Y位置 + 元素宽度)。

var elBottom = Ext.fly('elId').getBottom();

74.setLeft

直接使用CSS样式(代替setX()),设定元素的left位置。

Ext.fly('elId').setLeft(25)

75.setRight

设置元素CSS Right的样式。

Ext.fly('elId').setRight(15)

76.setTop

直接使用CSS样式(代替setY()),设定元素的top位置。

Ext.fly('elId').setTop(12)

77.setBottom

设置元素CSS Bottom的样式。

Ext.fly('elId').setBottom(15)

78.setLocation

无论这个元素如何定位,设置其在页面的坐标位置。元素必须是DOM树中的一部分才拥有页面坐标(display:none或未加入的elements会当作无效而返回false)。

Ext.fly('elId').setLocation(15,32)

79.moveTo

无论这个元素如何定位,设置其在页面的坐标位置。元素必须是DOM树中的一部分才拥有页面坐标(display:none或未加入的elements会当作无效而返回false)。

Ext.fly('elId').moveTo(12,17)

80.position

初始化元素的位置。如果未传入期待的位置,而又还没定位的话,将会设置当前元素为相对(relative)定位。

Ext.fly('elId').position("relative")

81.clearPositioning

当文档加载后清除位置并复位到默认。

Ext.fly('elId').clearPositioning()	
Ext.fly('elId').clearPositioning("top")

82.getPositioning

返回一个包含CSS定位信息的对象。有用的技巧:连同setPostioning一起,可在更新执行之前,先做一个快照(snapshot),之后便可恢复该元素。

var pos = Ext.fly('elId').getPositioning()

83.setPositioning

由getPositioning()返回的对象去进行定位。

Ext.fly('elId').setPositioning({
    left: 'static',
    right: 'auto'
})

84.translatePoints

送入一个页面坐标的参数,将其翻译到元素的CSS left/top值。

// {left:translX, top: translY}
var points = Ext.fly('elId').translatePoints(15,18); 

 

分享到:
评论

相关推荐

    ext4.0学习总结及使用说明

    ### ext4.0 学习总结及使用说明 #### 一、引言 随着技术的发展,文件系统的更新迭代显得尤为重要。Linux操作系统中的ext4作为ext3的继任者,不仅继承了其诸多优点,还引入了一系列重要的改进措施,极大地提升了...

    Ext3.0使用示例

    Ext3.0是一种广泛使用的日志文件系统,它是在Linux操作系统中的标准文件系统之一。这个版本的Ext3引入了许多改进,以提高系统的稳定性和性能,尤其适合大规模数据存储和高并发访问的环境。本文将深入探讨Ext3.0的...

    Ext常用属性总结

    本文将深入探讨"Ext常用属性总结"这一主题,帮助开发者更好地理解和利用ExtJS的特性。 首先,让我们了解几个基本的ExtJS概念。`Ext.Component`是所有UI组件的基础类,它拥有众多属性来控制组件的行为、外观和交互。...

    Windows读取Ext4分区的工具 Ext2Read

    总结来说,Ext2Read是一个实用的工具,帮助Windows用户方便地访问和提取Linux EXT分区的数据,扩展了跨平台操作的可能性。不过,在使用过程中,用户应当遵循相应的安全规范,避免对数据造成不必要的损害。

    Ext2.02的一些总结

    标题 "Ext2.02的一些总结" 暗示了我们即将探讨的是关于Ext JS库的一个特定版本,即2.02,这是一个广泛使用的JavaScript框架,用于构建富客户端Web应用程序。Ext JS提供了丰富的用户界面组件和强大的数据管理功能。在...

    Ext常用属性总结.doc

    ### Ext常用属性总结 在开发基于Ext JS框架的应用程序时,了解并熟练掌握其核心组件的属性是非常重要的。本文将详细介绍Ext JS中常用的属性及其应用场景,帮助开发者更好地编写高效、可维护的代码。 #### 一、Ext ...

    Ext性能优化总结

    ### Ext性能优化总结 在多年的Ext项目开发过程中,积累了丰富的经验与技巧,下面将这些关键的知识点进行详细的阐述,希望能为同行提供有价值的参考。 #### 一、架构优化:One Page One Application模式 在传统的...

    Ext常用功能开发总结

    数据通常存储在`Ext.data.Store`对象中,可以使用`fields`配置数据结构,`data`或`proxy`设置数据来源。 #### 表格数据的列定义 列定义通过`columns`数组进行,每个元素代表一列,包含`text`(列标题)、`dataIndex...

    Ext_Designer生成代码的使用

    ### Ext_Designer生成代码的使用详解 #### 引言 在现代Web开发领域,JavaScript框架如雨后春笋般涌现,其中Ext JS以其强大的组件库和灵活性在企业级应用开发中占据一席之地。然而,对于初学者或不熟悉Ext JS语法的...

    非常有用的EXT学习总结

    EXT,全称Ext JS,是一种基于JavaScript的前端框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括各种用户界面元素,如表格、树形视图、表单、菜单等,使得开发者能够轻松创建复杂的、交互性强的...

    ext4_utils

    首先,开发者会使用mkfs.ext4命令格式化存储设备,创建一个新的ext4文件系统。接着,他们会将系统映像、应用程序、库文件等数据写入这个文件系统。然后,通过tune2fs调整文件系统参数以优化性能,比如增加日志大小以...

    Ext2IFS windows

    总结,Ext2IFS是一个实用的工具,帮助Windows用户无缝地与Linux的ext文件系统交互,无论是为了数据共享还是故障排查,都是一个值得拥有的工具。正确使用并注意数据安全,能极大地提高跨平台工作的效率。

    ext例子ext例子ext例子

    在探讨给定文件信息所涉及的知识点时,我们首先应当明确,这段信息似乎是在尝试提供一个与“ext”相关的示例代码片段,然而,“ext”作为一个标签,其具体含义并不明确,可能指的是“extension”(扩展)或者某种...

    Ext实例新手做项目足够了总结的

    跟着老师做了一个Ext的项目以后总结的例子。新手做项目足够了,包含了Ext的所有的基本问题。

    EXT2.0,EXT4.0,JS

    总结来说,EXT2.0和EXT4.0是Linux系统中的两种文件系统,JavaScript是一种关键的Web编程语言,EXT JS是一个基于JavaScript的前端开发框架。这些技术相互配合,共同构成了现代计算机系统和网络应用的基础。通过学习和...

    fckeditor 与ext 集成使用

    **标题:“FCKeditor与EXT集成使用”** 在Web开发中,富文本编辑器和UI框架的集成是常见的需求,以便提供用户友好的界面和功能丰富的编辑体验。本主题主要探讨的是如何将FCKeditor(一个流行的开源JavaScript富文本...

    ext js calendar 日历

    总结来说,Ext JS Calendar是一个功能强大的日历组件,通过灵活的配置和数据绑定机制,可以满足复杂日程管理应用的需求。其丰富的视图模式和高度可定制性使其成为开发专业级日历应用的理想选择。开发者可以根据实际...

    Ext开发总结

    Ext是一个强大的JavaScript库,主要用于构建富客户端应用程序,它提供了丰富的用户界面组件和数据绑定机制。以下是一些核心概念和使用技巧: 1. 引入所需的Js和Css文件 在开始使用Ext进行开发时,首先需要引入必要...

    Linux下使用ext3grep恢复文件

    对于采用ext3文件系统的磁盘分区来说,使用`ext3grep`这一工具可以有效地帮助我们恢复已删除的文件。本文将详细介绍如何在Linux环境下安装与使用`ext3grep`进行文件恢复。 #### 二、准备工作 1. **下载安装ext3grep...

Global site tag (gtag.js) - Google Analytics