转自:http://www.ext.net.cn/forum.php?mod=viewthread&tid=11931
点击一个按钮就出现一行控件,点击删除控件就可将一行控件删除,这是不是你一直以来都想实现的需求呢?
本帖就来解答这个问题:
首先先放几个效果图,看你是不是需要这样的需求,如果是再往下看帖哦。
- 下图是刚开始的状态
- 下图是新增了几行控件的状态
- 下图是删除了第二行的状态
接下来是实现的方法:
- 上面的第一张图(默认状态下)是在需要在前台布局的 代码如下
- <ext:Window ID="winEdit">
- Width="700" Hidden="true" Modal="true" Title="課件地址" AutoScroll="true" ButtonAlign="Center">
- <items>
- <ext:panel ID="pnl_urls">
- <content>
- <table>
- <tbody>
- <tr>
- <td>
- <ext:Label ID="lbl_url_txt">
- <ext:Button ID="btn_addurl">
- <Listeners>
- <Click Fn="newurl" />
- </Listeners>
- </ext:Button>
- </td>
- </tr>
- <tr>
- <td>
- <ext:Panel>
- <Items>
- <ext:TextField ID ="UrlName_1">
- </Items>
- </ext:Panel>
- </td>
- <td>
- <ext:Panel ID ="pnl_classurl">
- <items>
- <ext:TriggerField ID ="url_1">
- <Listeners>
- <TriggerClick Fn ="delurl" />
- </Listeners>
- </ext:TriggerField>
- </items>
- </ext:Panel>
- </td>
- </tr>
- </tbody>
- </table>
- </content>
- </ext:panel>
- </items>
- <buttons>
- <ext:Button ID ="btn_saveurls">
- <Listeners>
- <Click Handler ="SaveEdit()" />
- </Listeners>
- </ext:Button>
- <ext:Button ID ="btn_cancelurls">
- <Listeners>
- <Click Handler ="CancelEdit()" />
- </Listeners>
- </ext:Button>
- </buttons>
- </ext:Window>
复制代码
- 上面的第二张图(新增行状态下)是在页面上"新增课件地址"的按钮上家点击事件的完成的 js代码如下
- //新增課件地址文本框
- function>
- panel.doLayout();
- //課件標籤
- var>
- pnl.doLayout();
- var>
- var>
- var>
- var Nameid = "UrlName_" +>
- id:>
- trigger.setValue(ismark);
- }
- panel.insert(parseInt(items + 1),>
- label = "課件" + (parseInt(panel.items.items[items - 1].id.split('_')[1]) + 1).toString();
- }
- var>
- id: Nameid,
- fieldLabel: " ",
- labelWidth: 5,
- labelSeparator: " ",
- width: 100,
- value: label
- })
- pnl.insert(parseInt(items + 1), txt);
- pnl.doLayout();
- }
复制代码
- 上面的第三张图(删除状态下)是在页面新增完的行最右边的“X”点击事件完成的 js代码如下
- //移除課件地址文本框
- function>
- var>
- if (panel.items.length > 1) {
- panel.remove(el);
- panel.doLayout();
- pnl.remove(Ext.getCmp("UrlName_" +>
- var>
- if (panh <= "380") {
- if (winh >= "140") {
- Ext.getCmp("winEdit").setHeight(parseInt(Ext.getCmp("winEdit").getHeight()) - 25);
- }
- }
- }
复制代码