Ext之布局篇

ExtJS之布局篇 Ext布局总的来说是很灵活的,因此我觉得有必要一块探讨一下。 Ext常用的布局都在Ext.layout下,这里几乎涵盖了所有的布局方式(但是值得注意的是通常我们不是直接通过"new"来创建这些类的对象然后往里面添加控件使用,而是作为控件一个配置属性使用让Ext自动创建对应的类),满足开发者需求。那么我们就其中常用的方式逐一介绍。 Border布局 Border布局是Ext中常用布局方式(经常用到整个页面的总体布局),感觉用的几率很大。在看代码之前先熟悉一种特殊的容器ViewPort,它是对于浏览器视窗 阅读详情

Ext布局总的来说是很灵活的,因此我觉得有必要一块探讨一下。

Ext常用的布局都在Ext.layout下,这里几乎涵盖了所有的布局方式(但是值得注意的是通常我们不是直接通过"new"来创建这些类的对象然后往里面添加控件使用,而是作为控件一个配置属性使用让Ext自动创建对应的类),满足开发者需求。那么我们就其中常用的方式逐一介绍。


Border布局

Border布局是Ext中常用布局方式(经常用到整个页面的总体布局),感觉用的几率很大。在看代码之前先熟悉一种特殊的容器ViewPort,它是对于浏览器视窗的抽象,你可以将它理解为浏览器的可见区域,它将渲染到document.body并自动调整大小,一个页面只能创建一个Viewport。

new Ext.Viewport({  
    layout:"border",  
    items:[  
        {region:"north",title:"Up",height:50},  
        {region:"south",title:"Down",height:50},  
        {region:"west",title:"Left",width:200},  
        {region:"east",title:"Right",width:200},  
        {region:"center",title:"Center"}  
    ]  
});  

上面的代码很简单,首先Viewport将自动占满整个窗口,然后我们在Viewport中使用border布局(就是上面的layout:'border')。Border布局的用法就是对于其子容器使用region来指示子容器所处的位置(例如上面region:'center'),之后子容器就会显示在其父所在容器的相应位置,这些位置是固定的只有上面我们列出的五个。但是请注意这五个部分不是必须都有的,但是至少要包含"center"(因为它是主体,没有主体如何放内容啊)。

效果:

上面的效果看起来不是太好看,而且我们上面说通常情况下我们没有必要五个部分都有的,那么我们稍微修改一下:

var pnNorth=new Ext.Panel({  
    id:'pnNorth',  
    autoWidth:true,  
    heigth:80,  
    frame:true,  
    region:'north',  
    html:'这里放置页头内容'  
});  
var pnWest=new Ext.Panel({  
    id:'pnWest',  
    title:'菜单项',  
    width:200,  
    heigth:'auto',  
    split:true,//显示分隔条  
    region:'west',  
    collapsible:true  
      
});  
var pnCenter=new Ext.TabPanel({  
    region:'center',  
    activeTab:0,  
    items:[  
        {  
            title:'收件箱',  
            authHeight:true,  
            closable:true,//是否可关闭  
            html:'这里显示所收邮件。。。'  
        }  
    ]  
});  
var vp=new Ext.Viewport({  
    layout:"border",  
    items:[  
        pnNorth,  
        pnWest,  
        pnCenter  
    ]  
});  

效果:

还不错吧!


Column布局

从字面就知道Column布局就是列布局,例如我一个panel中还有两个子panel现在想要左侧显示一个右侧显示一个怎么办?这是可以选择Column将父Panel分为两列,左侧一个右侧一个。

var pnSub1=new Ext.Panel({  
    height:300,  
    columnWidth:.3,  
    html:'这是子panle1'  
});  
var pnSub2=new Ext.Panel({  
    height:300,  
    columnWidth:.7,  
    html:'这是子panle2'  
});  
var pn=new Ext.Panel({  
    id:'pn',  
    title:'父Panel',  
    renderTo:'divPanel',  
    width:800,  
    height:300,  
    layout:'column',  
    items:[  
        pnSub1,  
        pnSub2  
    ]  
});  

效果

首先在父容器中设置"layout"为"column"然后在子容器中指定"columnWidth"的值(是比例)就可以显示了,很简单。


Fit布局

如果从复杂度来说fit布局应该算是最简单的了,设置是最少的。Fit布局同样也是设置父容器的layout属性,但是子容器不用设置任何相应属性。它的目的就是为了让子容器能够自适应于父容器(用了fit布局子容器设置宽度无效),但是请注意如果父容器有多个子容器,只会显示第一个。

var pnSub1=new Ext.Panel({  
    title:"子panel1",  
    html:"子panel1(会显示)"  
});  
var pnSub2=new Ext.Panel({  
    title:"子panel2",  
    html:"子panel2(不会显示)"  
});  
var pn=new Ext.Panel({  
    renderTo:"divPanel",  
    title:"父panel",  
    width:800,  
    height:200,  
    layout:"fit",  
    items:[  
        pnSub1,  
        pnSub2  
    ]  
});  

效果:

可以看出只显示了第一个panle,而且它是自适应的,我们没有设置高度和宽度。


Table布局

Table布局多数用在较为复杂的情况下,想一想做web开发总不能就上面几种简单情况吧,因此也就是说Table布局还是很常用的。当然,但是和其他布局相比其参数设置也稍微一些(不用怕,事实上还是很少的)。

new Ext.Panel({  
    title:"父Panel",  
    renderTo:"divPanel",                      
    width:900,  
    height:200,  
    layout:"table",  
    layoutConfig:{  
        columns:3                     
    },  
    defaults:{  
        height:100,  
        width:300  
    },  
    items:[  
        {  
            html:"第一个子panel(行:1,列:1)",  
            rowspan:2,//合并行  
            height:200  
        },  
        {  
            html:"第二个子panel(行:1,列:2)",  
            colspan:2,//合并列  
            width:600  
        },  
        {  
            html:"第三个子panel(行:2,列:1)"  
        },  
        {  
            html:"第四个子panel(行:2,列:2)"  
        }  
    ]  
});  

效果:

我们上面的布局就是两行三列的布局,但是注意一点在layoutConfi中我们无需指定有几行,只要指定由几列就可以了,有几行往下写几行就可了。另外一点就是对于合并行列的时候记得指明高和宽否则可能出现你合并的行跟未合并的单元格一样高的情况。同Ext中多数布局一样也是在父容器指定对应的布局为"table",然后子容器设置对应的参数(对table布局就是colspan等)。

上面的布局或许有些幼稚,真正这样做的不太多,我们稍微修改一下:

new Ext.Panel({  
    id:'pn',  
    title:"新闻",  
    renderTo:"divPanel",                      
    width:800,  
    height:500,  
    layout:"table",  
    bodyStyle:'padding:10 10 10 10',  
    layoutConfig:{  
        columns:2  
    },  
    defaults:{  
        height:220,  
        width:380,  
        frame:true  
    },  
    items:[  
        {  
            title:'国际',  
            html:"第一个子panel(行:1,列:1)",  
            bodyStyle:'padding:20'  
        },  
        {  
            title:'国内',  
            html:"第一个子panel(行:1,列:1)",  
            bodyStyle:'padding:20'  
        },  
        {  
            title:'新闻组图',  
            colspan:2,  
            html:"第一个子panel(行:1,列:1)",  
            bodyStyle:'padding:20;',  
            width:770  
        }  
    ]  
}); 

注意,还有样式:

#pn td {  
    padding:5px;  
}  

效果:

上面看起来还可以吧,这就是table布局出来的啊,O(∩_∩)O~!


Form布局

这个布局是专门为表单而设计的布局方式,当然多数是用在FormPanel中(它也是FormPanel默认的布局方式)。我们前面说过FormPanel但是没有涉及复杂布局,事实实际应用中更多的是较复杂的布局。

比较一下下面两幅图有什么区别,我想除了标题是没有任何区别的吧,但是事实上这是两种组件,一个是Panel另一个是FormPanel:

new Ext.Panel({  
    renderTo:"divPanel",  
    title:"这个是Panel",  
    width:300,  
    height:120,  
    bodyStyle:'padding:10',  
    layout:"form",  
    hideLabels:false,  
    labelAlighn:"right",  
    defaultType:"textfield",  
    items:[  
        {fieldLabel:"姓名",name:"name"},  
        {fieldLabel:"年龄",name:"age"}  
    ]  
});  
new Ext.FormPanel({  
    renderTo:"divPane2",  
    title:"这个是FormPanel",  
    width:300,  
    height:120,  
    bodyStyle:'padding:10',  
    layout:"form",  
    hideLabels:false,  
    labelAlighn:"right",  
    defaultType:"textfield",  
    items:[  
        {fieldLabel:"姓名",name:"name"},  
        {fieldLabel:"年龄",name:"age"}  
    ]  
});  

从代码我们也可看出来,区别就是对于Panel我们配置了layout为form,从这也能看出来说FormPanel默认的布局就是form布局,所以对于习惯于用Panel而不习惯用FormPanel的朋友尽管用Panel,但是一定要考虑好提交的问题,如果使用panel的话,要做提交可是要一个个获得控件的值的,而FromPanel则不需要。

另外一我们需要扩展一下,因为实际的布局要比这复杂。

这个表单虽然不算是太复杂,但是比较有代表性,基本上常用的控件都放上去了,也包含了常见的radio多列布局。好了看代码吧:

Ext.onReady(function(){  
    var pnRow1=new Ext.Panel({  
        border:false,  
        layout:'column',  
        items:[  
            new Ext.Panel({  
                columnWidth:.5,  
                layout:'form',  
                border:false,  
                labelWidth:40,  
                labelAlign:'right',  
                items:[  
                    {  
                        xtype:'textfield',  
                        fieldLabel:'姓名',  
                        name:'uname',  
                        anchor:'95%'  
                    }  
                ]  
            }),  
            new Ext.Panel({  
                columnWidth:.3,  
                layout:'form',  
                border:false,  
                labelWidth:40,  
                labelAlign:'right',  
                items:[  
                    {  
                        xtype:'radio',  
                        fieldLabel:'性别',  
                        boxLabel:'男',  
                        name:'sex',  
                        inputValue:'男',  
                        checked:true,  
                        anchor:"95%"  
                    }  
                ]  
            }),  
            new Ext.Panel({  
                columnWidth:.2,  
                layout:'form',  
                border:false,  
                labelWidth:1,  
                items:[  
                    {  
                        xtype:'radio',  
                        boxLabel:'女',  
                        name:'sex',  
                        inputValue:'女',  
                        labelSeparator:'',  
                        anchor:"95%"  
                    }  
                ]  
            })  
        ]  
    });  
    var pnRow2=new Ext.Panel({  
        layout:'column',  
        border:false,  
        items:[  
            new Ext.Panel({  
                columnWidth:.5,  
                layout:'form',  
                border:false,  
                labelWidth:40,  
                labelAlign:'right',  
                items:[  
                    {  
                        xtype:'datefield',  
                        name:'birthday',  
                        fieldLabel:'生日',  
                        anchor:'95%'  
                    }  
                ]  
            }),  
            new Ext.Panel({  
                columnWidth:.5,  
                layout:'form',  
                border:false,  
                labelWidth:40,  
                labelAlign:'right',  
                items:[  
                    {  
                        xtype:'combo',  
                        name:'study',  
                        store:['专科','本科','硕士','博士'],  
                        fieldLabel:'学历',  
                        anchor:'95%'  
                    }  
                ]  
            })  
        ]  
    });  
    var pnRow3=new Ext.Panel({  
        layout:'column',  
        border:false,  
        items:[  
            new Ext.Panel({  
                columnWidth:.3,  
                layout:'form',  
                border:false,  
                labelWidth:40,  
                labelAlign:'right',  
                items:[  
                    {  
                        xtype:'checkbox',  
                        name:'hoby',  
                        inputValue:'computer',  
                        fieldLabel:'爱好',  
                        boxLabel:'计算机',  
                        anchor:'95%'  
                    }  
                ]  
            }),  
            new Ext.Panel({  
                columnWidth:.3,  
                layout:'form',  
                border:false,  
                labelWidth:1,  
                labelAlign:'right',  
                items:[  
                    {  
                        xtype:'checkbox',  
                        name:'hoby',  
                        inputValue:'football',  
                        boxLabel:'足球',  
                        labelSeparator:'',  
                        anchor:'95%'  
                    }  
                ]  
            }),  
            new Ext.Panel({  
                columnWidth:.4,  
                layout:'form',  
                border:false,  
                labelWidth:1,  
                labelAlign:'right',  
                items:[  
                    {  
                        xtype:'checkbox',  
                        name:'hoby',  
                        intputValue:'tinyTable',  
                        boxLabel:'乒乓球',  
                        labelSeparator:'',  
                        anchor:'95%'  
                    }  
                ]  
            })  
        ]  
    });  
      
    var pnRow4=new Ext.Panel({//当然这里直接在FormPanel中添加TextField就可以了,因为只有一行,但是为了一致以及对齐方便我这里还是放到了panel中  
        layout:'form',  
        border:false,  
        labelWidth:40,  
        labelAlign:'right',  
        items:[  
            {  
                xtype:'textfield',  
                name:'email',  
                fieldLabel:'住址',  
                anchor:'98%'  
            }  
        ]  
    });  
    var pnRow5=new Ext.Panel({  
        layout:'form',  
        border:false,  
        labelWidth:40,  
        labelAlign:'right',  
        items:[  
            {  
                xtype:'htmleditor',  
                name:'note',  
                fieldLabel:'备注',  
                height:200,  
                anchor:'98%'  
            }  
        ]  
    });  
      
    new Ext.FormPanel({  
        renderTo:"divPanel",  
        title:"个人信息录入",  
        width:600,  
        bodyStyle:'padding:10px',  
        layout:"form",  
        items:[  
            pnRow1,  
            pnRow2,  
            pnRow3,  
            pnRow4,  
            pnRow5  
        ]  
    });  
});  

代码看似比较多,其实很容易理解,Ext有一个特点就是组件的自由组合,那么我们只需要拆分来看就可以了。从大的方面是一个FormPanel,其中有五行内容(这个五个panel当然是使用的父容器FormPanel的默认布局"form"了,所以依次向下放)。先暂且不管第四行和第五行,我们看看其他三行,其实格式基本上是一样的,就是首先这一行放到一个panel中(假设叫做Panel_A),利用"column"布局来解决多列问题,让后再其Item中我们再再每个column中放一个panel(Panel_B)而这个panel我们使用"form"布局(这个panel中其实都只有一个form控件,所以当然不用form布局也是可以的,之所以用form布局是为了能够使用labelWidth这样的form特有属性),然后在其中放一个form控件,这样也就解决了多列布局的问题。关于第四列和第五列本身就是单列的也没有什么好解释的。上面的方法是通用的,基本上用这种方法所有的复杂表单布局都可以解决了。可能会有人问遇到合并行的怎么办?其实利用上面的方法很容易的,例如假设上面"性别"和"学历"是合并的,那么我们就没有必要用两个panel放两行了,就当做一行,只不过在第一列的Panel_B中放两个form控件就可以了(因为它是form布局,默认就会在两行)。

那么还有没有其他方法呢?答案是肯定的,那就是table布局,个人感觉对于较为规则的多列布局用table还是不错的,不过像上面的例子这样从总体上看是两列的布局,但是有些列里面又是多列我认为用table也是太简单。


总结:

上面说了接种布局,其实简单总结起来border布局一般作为页面整体布局来使用;fit布局适用于那种需要将子类完全占满父类容器的情况;column布局用于多列;form是一种表单特有布局方式,实质是一行一控件的形式;table布局适用多行多列但是有时宽高不太容易控制。而且值得强调的一点就是给一个控件设置layout属性,其实指的是其内部控件的布局方式而不是它本身的布局,这点要搞清楚。

Ext Js入门第10篇-使用Ext.container.Viewpost整体布局 Ext.container.Viewport是一款非常常用的布局容器,它会自动把自己输出到HTMl页面,而且在页面的上中下左右中5个布局 Ext.onReady(function() { //创建一个TreeStore,TreeStore负责为Tree提供数据 var store=Ext.create('Ext.data.TreeStore', 阅读详情

相关推荐

ext4 文件系统在存储设备中的布局

ext4 文件系统磁盘布局 一些专业术语(在后续中会用到): ext4 将存储设备分成一组逻辑上的块 (blocks) sb 指的是 superblock 中的域 (fields) inode 指的是 inode 表 (inode table) 中某项的域 总览: 在ext4文件系统管理下的磁盘分区会被分成一系列的块组 (block groups),文件被尽可能的放在同一块组中,以降低文件...

qq_41957544的博客 633

Ext 常用布局

Ext 常用布局 hbox 和 vbox 一个是水平布局,一个是垂直方向的布局 // vbox new Ext.Container({ width: 1000, cls: 'sf-wrap', layout: { type: 'vbox', align: 's...

VFrank 1310

易智联LM401模块学习(一)——初识Lora

Lora

weixin_46046597的博客 1054

Ext常用6大布局方式

只要是EXT.Container以及其之类都可以都可以使用Layout对其Items进行布局     简单说明最常用到的6种布局方式: 一.最简单的布局:FitLayout new Ext.Viewport({ layout:'fit', items:[oGrid] //oGrid是一个表格 });           注意: 1.使用Fit布局 items中只能有...

zhangxiaoben16的博客 429

立创开源Link Hub多功能USB扩展坞:CH339F主控+4层板设计,实测网口/存储性能

本文深度评测了立创开源Link Hub多功能USB扩展坞,其采用CH339F主控芯片与4层PCB板设计,并严格进行阻抗匹配。实测表明,该扩展坞的USB接口与microSD读卡器性能均接近USB 2.0理论极限,百兆以太网口转换效率高,性能损失极小。设计上注重电源保护与信号完整性,是一个兼顾稳定性与成本的高完成度开源硬件项目。

weixin_36173034的博客 158

三维重建之条纹投影结构光(三)——相高模型标定

接上面两文: 三维重建之条纹投影结构光(一)https://blog.youkuaiyun.com/beyond951/article/details/123361852?spm=1001.2014.3001.5501三维重建之条纹投影结构光(二)——四步相移+三频外差法https://blog.youkuaiyun.com/beyond951/article/details/123769596?spm=1001.2014.3001.5501接下来对相高模型进行标定,其推导过程如下图所示 ...

beyond951的博客 4876

Extjs--12种布局方式

按照Extjs的4.1的文档来看,extjs的布局方式大致有12种,下面一一介绍,有些代码就是文档中的。 1.Border 边界布局 border布局,最多可以将页面分割为“东南西北中”五部分,是最常用的一种布局方式。我们可以根据项目的实际需求保留其中的部分区域,而将其他部分隐藏掉。 1 1.1效果图预览 这里写图片描述 1.2 代码demo Ext.onReady(func...

Alex的博客 865

F280049C Crossbar X-BAR

X-BAR不是一个功能模块,只起内部外设与外设之间,或内部外设与GPIO的连接作用。配置X-BAR的就是在配置信号之间的连接。确实如这一节的开头所言,X-BAR提供了以各种配置连接设备输入、输出和内部资源的灵活性。学完这一节也知道为什么crossbar(X-BAR)的中文翻译是交叉开关。

xht2403267701的博客 3048

Ext.Panel组件详解

Ext.onReady(function(){ var panel = new Ext.Panel({ renderTo : Ext.getBody(), height : 200, width : 400, title : "标题", html : "Welcome", tbar : [

夜凉如水 4657

带标签的PHM2009齿轮箱数据集

PHM2009附加数据集—带标签的齿轮箱数据集,可用于测试算法

qq_39379705的博客 4873

微信小程序PC端兼容性实战:如何绕过限制在电脑上运行手机端小程序

本文详细解析了微信小程序在PC端的兼容性问题及解决方案,重点介绍了如何利用`wx.getSystemInfo`API检测运行环境,并通过修改User-Agent、动态环境检测与适配等技术手段实现手机端小程序在PC端的顺畅运行。文章还提供了常见兼容性问题的解决方法和调试工具推荐,帮助开发者高效应对多端适配挑战。

weixin_28366053的博客 866

Ext布局篇

EXT标准布局类 收藏 面板相当于一张干净的白纸,如果直接在上面添加内容,将很难控制面板中内容的显示位置,面板元素越多就越显得凌乱,所以需要在面板上划分不同的区域,将面板内容展示到希望的位置上。ExtJS通过提供多种布局类来为面板提供支持,主要包括如下10种: ContainerLayout(容器布局) FitLayout(自适应布局) AccordionLa...

weixin_33949359的博客 374

瑞芯微RK3588平台YOLOv8Pose模型RKNN部署与C++优化实战:从模型转换到高效推理的全流程指南-附源码

错误码 | 原因 | 解决方案 || -1001 | ONNX算子不支持 | 升级RKNN SDK至最新版 || -2003 | 量化校准数据不足 | 增加校准图片至500张 || -3005 | 输入尺寸不匹配 | 固定模型输入尺寸为640x640 || 资源消耗 | CPU 35% | NPU 90% |

m0_64661770的博客 990

EXT布局篇

这是我浏览过的一篇不错的EXT布局文章,在此小小的引用一下以便日后用到 http://blog.youkuaiyun.com/kenshincui/article/details/5846849

ldx314121077的专栏 186

强化学习(Q-learning、DQN) —— 理论、案例与交互式 GUI 实现

本文详细介绍了强化学习中基于值函数的 Q-learning 算法及深度强化学习的 DQN 方法,从基本理论、数学模型到算法流程均进行了全面阐述。通过迷宫导航、股票交易策略和机器人控制等典型案例,展示了强化学习在处理高维、非线性和时变问题中的强大适应性。为了帮助工程师和研究者更直观地理解强化学习的训练过程,本文还提供了一份基于 Python 与 PyQt6 实现的交互式 GUI 演示系统代码示例,用户可以在线调整参数,实时观察累计奖励和 Q 值的变化,从而更深入地理解算法收敛和策略演化的过程。

闲人编程的博客 1475

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

EXT 篇,ext简单布局,ext form提交

1.ext form 提交: Ext.onReady(function() { Ext.create('Ext.form.Panel', { title : 'Simple Form', id:'formPanel_1', bodyPadding : 5, width : 350, // The form will submit an AJAX reque

chengchanglun'Blog 1288

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Ext.NET-布局篇

概述 前一篇介绍了Ext.NET基础知识,并对Ext.NET布局进行了简要的说明,本文中我们用一个完整的示例代码来看看Ext.NET的布局。 示例代码下载地址>>>>> 本文目的 本文使用Tree、Grid应该是我们最为常用的控件,实现自适应的页面布局, 顶端:使用Panel,可折叠; 左侧:使用TreePanel,可折叠; 中间:使用GridPanel...

261

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

(Ext 基础篇) 布局

所谓布局,简单来说就是决定把什么东西放到什么位置上,对于管理软件来说,一般都是首部放标题,左边放菜单栏,空余的右下方用来显示具体的内容。本章将详细介绍EXT中布局的用法。 一、传统的布局方式 我们可以用Ext.Viewport类对整个页面进行整体布局,具体使用方法如下:   var viewport=new Ext.Viewport({                  layo

zhouzhiwengang的专栏 1196

第六篇 Ext 布局篇

<link type="text/css" rel="stylesheet" href="ext-2.3.0/resources/css/ext-all.css"> <link type="text/css" rel="stylesheet" href="ext-2.3.0/resources/css/xtheme-green.css&q

rzy 168

ext grid某一行置灰_学懂grid布局:这篇就够了(译)

----前言 上周发过一篇关于flex布局的文章,但发完之后我感觉我并没有写很多自己对flex布局的理解,因为原链接的作者的轮子实在是太强了,这里借用知乎大佬牛岱的话来说,当人家已经有足够好的轮子,你就不要试图,甚至是通过各种手段,试图去取代这个轮子的地位。我觉的很正确(偷偷diss某些学校的计算机专业仍然用某本书当做C语言入门,真的是从入门到放弃),所以说花生直接按照原文来翻译了(真的...

weixin_39977488的博客 331

Re:Linux系统篇(三十三)文件篇·六:一文讲透 Linux 文件系统:从 EXT2 物理布局到 VFS 源码级全景解析

本文介绍了EXT2文件系统的核心设计原理,重点阐述了其在硬盘上的布局与管理机制。主要内容包括:1)从物理磁盘到逻辑分区的演进,解释分区的基本单位(柱面)和分区的构成;2)块组(Block Group)的划分,说明块设备的概念和文件系统对数据块的管理方式;3)深入分析块组内部结构,包括数据块、inode表、块位图、inode位图、块组描述符表(GDT)和超级块(Super Block)的作用及相互关系。文章强调格式化的本质是写入文件系统管理信息,并指出内存页与磁盘块对齐对效率的重要性。

小此方的博客 3697

EXT.NET复杂布局(四)——系统首页设计(下)

此篇为EXT.NET系列终结篇。希望此系列能够对大家有所帮助。 首页JS函数介绍 使然使用了Ext.NET,但是JavaScript的地位还是举足轻重的。 1.添加选项卡   1: var addTab = function (id, url, title) { 2: var tab = tplCenter.getCompon...

weixin_34356310的博客 113

extjs html 布局实例,Extjs表单元素实现横向、多列布局,最简单的代码示例

Ext.onReady(function(){Ext.create('Ext.form.Panel',{title : '横向布局测试',height : 130,width : 550,frame : true,layout : 'form',renderTo : Ext.getBody(),items : [{layout : 'column',frame : true,items : [{x...

weixin_31608037的博客 408
上一篇: Ext的xtype一览
下一篇: 如何汉化Eclipse
小威
博客等级 码龄16年 27粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值