`
shupili141005
  • 浏览: 120289 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

在Ext.FormPanel/Ext.form.FormPanel的FieldSet中实现Label的html文本超链接和TextField的整体隐藏

阅读更多

     我主要根据自己在实战中解决问题的经过来阐述,这样比较符合逻辑。


第一,如何在 Ext.FormPanel/Ext.form.FormPanel FieldSet 中实现html文本超链接 呢?

     刚开始,我是用 Ext.form.TextField 中的 fieldLabel 属性实现该功能。 具体实现代码如下(下面的属性设置可以根据实际需要自己取舍):

{

            columnWidth : 0.03,
            labelSeparator : ' ',
            labelWidth : 30,
            items : [{
                xtype : 'textfield ',
                id : 'file2',

                hidden: true, // 初始化为隐藏 状态,如要显示,则调用 Ext.getCmp('file2').show(); 否则 调用

                                  // Ext.getCmp('file2').hide(); 这些在API Documentation 中已描述的非常清楚

                style:'border-color:#fff #fff #000;background:#fff',
                fieldLabel : '
<a href=../attachment/zdzxywctjb.doc><font color=red>模版</font></a> ',
                readOnly : true,

                anchor :'0%'
            }]
}

可是当单击 "模版 "时,光标总是定位到 TextField 的输入中,并且出现多余的下划线(刚开始该线是没有的),给人的感觉很不爽。经过一段时间的尝试,还不能得到我想要的结果,于是只好另辟蹊径了。如谁能把这个bug解决,麻烦告诉我一声,thanks a lot in advance!

不好意思,我在最后总结之后: 明白了外层的 id 和 hidden 属性可以控制这个 TextField , 而里面层的 id 和 hidden 属性只能控制 input 域 这也是我解决这个问题 关键所在。我感觉这可以实现的,自己尝试了一下,结果可以了,多亏这次自己好好总结。实现代码如下(可以和上面代码做个比较,以便更深入理解蓝色字的本质内涵):

{
            columnWidth : 0.05,
            labelWidth : 30,
            id: 'file2',
            hidden: true,

            items : [{               
                xtype : 'textfield ',
                hidden: true,
                id: 'file22',

                labelSeparator : ' ',
                style:'border-color:#fff #fff #000;background:#fff',
                fieldLabel : '<a href=../attachment/zdzxywctjb.doc><font color=red>模版</font></a>',
                readOnly : true
            }]
}


     接着,我就用Google搜索和查找API,得到点子,尝试利用 Ext.form.Label 中的 html 属性实现该功能。具体代码如下所示:

{
            columnWidth : 0.13,
            labelWidth : 40,
            readOnly: true,
            items : [{
                id : 'file2',
                hidden: true, // 初始化为隐藏 状态,如要显示,则调用 Ext.getCmp('file2').show(); 否则
调用

                                  // Ext.getCmp('file2').hide(); 这些在API Documentation 中已描述的非常清楚
                xtype : 'label',
                html: '<a href=../attachment/zdzxywctjb.doc><font color=red>模版</font></a>'
            }]

}

很幸运的是,我尽然成功了!我对于 ExtJS 来说是个初学者(1个月不到),这对我来说是巨大的鼓舞。第一个功能解决到此为止,非常感谢你的关注。


第二,如何显示/隐藏 TextField 的这个范围(包括Label、input)?

实现代码如下:

{
            columnWidth : 0.35,
            labelWidth : 200,
            id: 't2',
            hidden: true , //
隐藏 TextField 的这个范围
            items : [{               
                xtype : 'textfield',
                id : 'title2',

//              hidden: true ,
                labelSeparator : ' ',
                style:'border-color:#fff #fff #000;background:#fff',
                fieldLabel : '2. 重大专项推荐表: &nbsp;&nbsp;&nbsp',
                readOnly : true
            }]
}

我不知道你是否注意到了,上面在设置了2个 id 属性,这也是我实战中碰到的 问题。刚开始时, 没有包括 id: 't2' 和 外层的 hidden ,而包括里面层的 hidden。这导致我想要隐藏这个TextField 时,总是隐藏不了 Label 域。当我把 hidden 拿到外层时,调用 Ext.getCmp('title2').show(); 却不能显示这个 TextField 。这是我就想,里面层的 id 的对外层的显示不起作用,这说明了作用域的问题。于是,我顺藤摸瓜,明白了外层的 id 和 hidden 属性可以控制这个 TextField , 而里面层的 id 和 hidden 属性只能控制 input 域这也是我解决这个问题 关键所在 ,我想这肯定对你有所帮助。

 

版权声明:

如果大家要转载本文,我非常荣幸。但请参加转载网址,谢谢!

 

 

 

1
0
分享到:
评论

相关推荐

    EXT.form组件

    1. `form`:`Ext.FormPanel`是EXT JS中的表单面板,它是一个容器,可以容纳各种表单字段和其他组件。表单面板允许你定义布局、提交行为以及处理表单数据的方法。 2. `checkbox`:`Ext.form.Checkbox`是用于创建复选...

    Ext 添加功能form表单实例

    在这个例子中,通过`new Ext.FormPanel`来创建了一个表单面板,并设置了一些关键属性: - `frame`: 设置为`true`,表示表单周围有一个边框。 - `width` 和 `height`: 分别设置了表单的宽度和高度。 - `layout`: ...

    Ext组件描述,各个组件含义

    **2.16 Form Panel (Ext.FormPanel)** - **xtype**: `form` - **功能描述**:Form Panel 是一个包含表单字段的面板。 - **主要用途**:用于创建和管理表单,支持数据验证和提交。 **2.17 Checkbox (Ext.form....

    ExtJs_xtype一览

    - `textfield`:`Ext.form.TextField`,单行文本输入框。 - `trigger`:`Ext.form.TriggerField`,触发式输入框,常用于日期或搜索框。 - `checkboxgroup`:`Ext.form.CheckboxGroup`,自2.2版本起,用于组织多个...

    ExtJs组件类的对应表

    7. **`fieldset`** - `Ext.form.FieldSet`,表单字段组,用于将一组相关的表单字段组合在一起。 8. **`hidden`** - `Ext.form.Hidden`,表单隐藏域,用于存储需要但不需要显示的信息。 9. **`htmleditor`** - `...

    Ext中表单中各种组件的布局

    为了更好地组织表单元素,可以在Ext中使用`fieldset`组件来实现更复杂的布局。例如,将表单分为不同的区域,以便于管理和区分各个部分的信息。 ```javascript Ext.onReady(function() { var form = new Ext.form....

    Extjs xtype集合

    - **`Class`**: `Ext.FormPanel/Ext.form.FormPanel` - **描述**: 表单面板,用于组织表单字段。 2. **`checkbox`:** - **`xtype`**: `checkbox` - **`Class`**: `Ext.form.Checkbox` - **描述**: 复选框组件...

    ext 2.0 form demo

    1. FormPanel:EXT中的FormPanel是用于构建表单的基本容器,它可以包含多个表单字段和其他组件。 2. 字段组件:EXT提供了多种内置的表单字段,如TextField(文本输入)、ComboBox(下拉框)、CheckBox(复选框)、...

    extjs控件列表

    **Ext.form.TextField** - **描述**: 表单文本框,用于输入单行文本。 - **用途**: 输入用户名、邮箱等。 **Ext.form.TriggerField** - **描述**: 触发录入项,结合图标和文本框,点击图标触发特定操作。 - **用途*...

    自动添加行(ext)

    &lt;link rel="stylesheet" type="text/css" href="/resources/css/ext-all.css"/&gt; &lt;link rel="stylesheet" type="text/css" href="/resources/css/file-upload.css"/&gt; ``` - **作用**:为页面添加样式,使界面更...

    extjs中验证实例

    Ext.form.Field.prototype.msgTarget="under"; var fset = new Ext.FormPanel({ title:"学习表单字段元素的字段集", width:600, height:400, frame:true, renderTo:"myForm", items:[ {xtype:"fieldset", ...

    学习ExtJS Panel常用方法

    ### ExtJS Panel 常用方法详解 #### 一、属性介绍 在开始探讨 ExtJS Panel 的常用方法之前,我们先来...需要注意的是,在实际开发过程中,还需要根据项目需求选择合适的 xtype 和方法组合,以实现最佳的用户体验。

    Extjs中常用表单介绍与应用

    ExtJS是一个用于构建Web应用的强大JavaScript框架,它提供了丰富的用户界面组件和数据处理能力。其中,表单组件在Web应用中扮演着...通过学习和掌握上述知识点,开发者可以快速地在ExtJS项目中实现高质量的表单应用。

    ExtJS基础教程.pdf

    表单面板(FormPanel)和各类字段如复选框(Checkbox)、组合框(ComboBox)、日期字段(DateField)、隐藏字段(Hidden)、HTML编辑器(HtmlEditor)、数字字段(NumberField)、单选按钮(Radio)、文本区域(TextArea)、文本字段...

    sencha_的所有xtype类型

    `xtype`是Sencha框架(如Ext JS和Sencha Touch)中用于组件类型的扩展名,它允许开发者通过一个简短的字符串来创建各种组件。这种机制极大地简化了代码,使得开发人员能够快速地构建复杂且功能丰富的用户界面。 ###...

    ExtJS教程(深入介绍)

    - **表单及字段组件**:包括FormPanel、Checkbox、ComboBox、DateField、Field、FieldSet、Hidden、HtmlEditor、NumberField、Radio、TextArea、TextField和TimeField等,用于创建和管理用户输入。 EXT JS的文件...

Global site tag (gtag.js) - Google Analytics