extjs 弹出模态窗口

1、定义form

[javascript]
view plain
copy

  1. var form1 = Ext.create(‘Ext.form.Panel‘, {
  2. id:‘form1‘,
  3. frame: true,
  4. //title: ‘Form Fields‘,
  5. //width: 340,
  6. bodyPadding: 5,
  7. //baseCls: "x-plain",
  8. fieldDefaults: {
  9. labelAlign: ‘left‘,
  10. labelWidth: 90,
  11. anchor: ‘100%‘
  12. },
  13. items: [{
  14. xtype: ‘textfield‘,
  15. name: ‘job_id‘,
  16. fieldLabel: ‘job_fieldlabel‘,
  17. value: ‘Text field value‘
  18. }, {
  19. xtype: ‘textfield‘,
  20. name: ‘job_desc‘,
  21. //inputType: ‘password‘,
  22. fieldLabel: ‘job_fieldLabel‘
  23. }, {
  24. xtype: ‘textfield‘,
  25. name: ‘min_lvl‘,
  26. fieldLabel: ‘min_fieldlabel‘
  27. }, {
  28. xtype: ‘textfield‘,
  29. name: ‘max_lvl‘,
  30. fieldLabel: ‘max_fieldlabel‘,
  31. value: ‘Textarea value‘
  32. }]
  33. });

2、定义window 载体窗口

[javascript]
view plain
copy

  1. var win = Ext.create(‘Ext.Window‘, {
  2. title: ‘Resize Me‘,
  3. closeAction: ‘hide‘,   //改变系统关闭键的方法为‘hide‘
  4. width: 500,
  5. height: 500,
  6. minWidth: 300,
  7. minHeight: 200,
  8. maximizable: true,   //是否显示最大化按钮
  9. layout: ‘fit‘,
  10. plain: true,     //可以强制窗体颜色各背景色变的一样
  11. items: form1,     //指明加载哪个form
  12. modal: true,        //设定为模态窗口,否则底层网页还是可操作的。
  13. buttons: [{
  14. text: ‘Send‘, handler: function () { alert(‘send‘); }
  15. }, {
  16. text: ‘Exit‘,
  17. handler: function () { win.hide(); }
  18. }]
  19. });

3、先定义操作函数:

[javascript]
view plain
copy

  1. function AddRecord() {
  2. form1.getForm().reset();             //恢复到form定义时的样子。
  3. win.show();
  4. }
  5. function EditRecord() {
  6. var row = Ext.getCmp(‘mygrid‘).getSelectionModel().getSelection();
  7. if (row.length == 0) {
  8. Ext.Msg.alert("提示信息", "请您至少选择一个!");
  9. }
  10. else if (row.length > 1) {
  11. Ext.Msg.alert("提示信息", "对不起只能选择一个!");
  12. }
  13. else if (row.length == 1) {
  14. Ext.Msg.alert("只选了一个!");
  15. form1.getForm().loadRecord(row[0]);           //自动载入当前所选的条目,按form中各控件的name名进行加载。
  16. win.show();
  17. }
  18. }
  19. function DeleteRecord() {
  20. var row = grid.getSelectionModel().getSelection();
  21. if (row.length == 0) {
  22. Ext.Msg.alert("提示信息", "请您至少选择一个!");
  23. }
  24. else if (row.length > 1) {
  25. Ext.Msg.alert("提示信息", "对不起只能选择一个!");
  26. }
  27. else if (row.length == 1) {
  28. Ext.Msg.alert("只选了一个!");
  29. form1.getForm().loadRecord(row[0]);
  30. win.show();
  31. }
  32. }


4、定义按钮控件(可以不定义的,只是为了模块化好维护些,另外上面的函数可以在定义控件中直接定义,就不用单独定义函数了)

[javascript]
view plain
copy

  1. var btnAddAction = Ext.create(‘Ext.Action‘, {
  2. iconCls: ‘addicon‘,   // ‘../shared/icons/fam/delete.gif‘,  // Use a URL in the icon config
  3. text: ‘添加‘,
  4. disabled: false,
  5. minWidth: 80,
  6. handler: function (widget, event) {
  7. AddRecord();
  8. }
  9. });
  10. var btnEditAction = Ext.create(‘Ext.Action‘, {
  11. iconCls: ‘editicon‘,
  12. text: ‘编辑‘,
  13. disabled: false,
  14. minWidth: 80,
  15. handler: function (widget, event) {
  16. EditRecord();
  17. }
  18. });
  19. var btnDeleteAction = Ext.create(‘Ext.Action‘, {
  20. iconCls: ‘deleteicon‘,
  21. text: ‘删除‘,
  22. disabled: false,
  23. minWidth: 80,
  24. handler: function (widget, event) {
  25. DeleteRecord();
  26. }
  27. });
  28. ///--------------定义右键弹出菜单--------------------------------------------
  29. var contextMenu = Ext.create(‘Ext.menu.Menu‘, {
  30. items: [
  31. btnAddAction,
  32. btnEditAction,
  33. btnDeleteAction
  34. ]
  35. });

5、返回的数据格式(数据提交以后,返回数据格式)  注意success返回的值是布尔型,千万不要加引号变成字符型了。

{success:true} 或 {success:false,msg=‘异常信息‘}

提交语句如下:

[javascript]
view plain
copy

  1. modal: true,        //设定为模态窗口
  2. buttons: [{
  3. text: ‘Send‘,
  4. handler: function () {
  5. if (form1.getForm().isValid()) {
  6. //弹出效果
  7. Ext.MessageBox.show(
  8. {
  9. msg: ‘正在保存,请稍等...‘,
  10. progressText: ‘Saving...‘,
  11. width: 300,
  12. wait: true,
  13. waitConfig: { interval: 200 },
  14. icon: ‘download‘,
  15. animEl: ‘saving‘
  16. }
  17. );
  18. setTimeout(function () { }, 1000);
  19. alert(‘send‘);
  20. form1.getForm().submit({
  21. url: ‘../ashx/TestJobDataSave.ashx‘,
  22. //params: { ‘job_id‘: ‘job_id‘, ‘job_desc‘: ‘job_desc‘, ‘min_lvl‘: ‘min_lvl‘, ‘max_lvl‘: ‘max_lvl‘ },  // 默认都是以控件名提交参数,如果参数名相同则可以不用该句。
  23. method: "POST",
  24. success: function (form, action) {
  25. var flag = action.result.success;           //成功返回success为true
  26. if (flag ) {
  27. alert(‘成功返回!‘);
  28. }
  29. },
  30. failure: function (form, action) {
  31. var errorObj = Ext.JSON.decode(action.response.responseText);  <span style="color: rgb(255, 0, 0);"> //字串转化为json对象</span>
  32. Ext.Msg.show({
  33. title: ‘错误提示‘,
  34. msg: errorObj.<span style="color: rgb(255, 0, 0);">msg</span>,          //同上面的msg相对应。可以改为其他值的。
  35. buttons: Ext.Msg.OK,
  36. icon: Ext.Msg.ERROR
  37. });
  38. }
  39. })
  40. }
  41. else {
  42. alert(‘Form is not valid !‘);
  43. }
  44. }
  45. }, {
  46. text: ‘Exit‘,
  47. handler: function () { win.hide(); }
  48. }]

extjs 弹出模态窗口

时间: 2024-08-03 04:50:15

extjs 弹出模态窗口的相关文章

JS 弹出模态窗口解决方案

最近在项目中使用弹出模态窗口,功能要求: (1)模态窗口选择项目 (2)支持选择返回事件处理 在IE中有showModalDialog 方法,可以很好的解决该问题,但是在Chrome中和FF中就有问题了,它们不支持showModalDialog方法.因此需要采用不同的处理方法. IE中的窗口打开函数option参数定义之间必须用分号分隔,Chrome是用逗号分隔,使用时需要注意这点. var option = ""; //居中显示, option = "dialogWidth

MFC 弹出模态对话框

在一个稍微大一点的程序中往往需要多个窗体来进行交换.有些窗体的出现是为了提醒用户注意或是为了实现一项指定功能,不希望用户在关闭这个窗口前对相应程序的其他窗体进行操作,这个时候会用到模式对话框,本文所讲的就是如何在 MFC 中创建一个最为简单的对话框,并在一定条件下以模态弹出该对话框. 第一步:创建对话框,在程序的资源视图中Dialog文件夹处右键->插入对话框 第二步:为对话框添加对应的对话框类,双击相应对话框视图->在弹出的"MFC添加类向导"中填入对话框类名->点

如何弹出一个窗口气泡(使用定时器向上移动)

原文链接:http://blog.csdn.net/tangaowen/article/details/5108980 如何弹出一个窗口气泡 最近在工作中遇到这样一个需求,就是需要将一个窗口从右下角任务栏下面缓缓的上升到任务栏的上面,现在有很多的软件都有这样的气泡,比如:搜狗输入法的词条更新窗口,还比如CSDN的广告窗口等等. 1.首先 将要弹出的窗口移动到任务栏(当前屏幕)以下 2.然后,获得任务栏(本质是个窗口)的高度,这样就可以知道窗口最终的位置了 3.然后,计算获得窗口最终停止的位置:计

WPF FileFolderDialog 和弹出子窗口的一些问题

摘要:本文主要是WPF中 FileFolderDialog的相关问题,补充了关于在父窗口弹出子窗口,以及子窗口的相关属性(Data Binding)和命令绑定(Delegate Command)问题,里面还有关于如何使用读写xml文件内容的方法. 需要注意的地方: (1)对于每一个窗口(父窗口和子窗口),如果涉及到Data Binding相关问题的时候,均需要设置其对应的DataContext(一般为其ViewModel); (2)对于未在构造函数中初始化的属性,需要在定义的时候进行实例化(如下

安装jmeter以后打开会弹出命令窗口提示:WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0 x80000002. Windows RegCreateKeyEx(...) returned error code 5.

安装jmeter以后打开会弹出命令窗口提示: WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0 x80000002. Windows RegCreateKeyEx(...) returned error code 5. 应该怎么解决: win+R输入regedit 打开REGEDIT.EXE(真恨微软和其regedit.reg). 然后找到HKEY_LOCAL_MACHINE \ SO

弹出唯一窗口

一.MDI窗体弹出唯一窗体 private void button1_Click(object sender, EventArgs e) { //设置一个bool变量,用来标记是否有已打开的重名窗口 bool has = false; Form1 form1 = new Form1(); //遍历mdi子窗口 foreach (Form form in MdiChildren) { //判断是否重名 if (form.Name == form1.Name) { //重名时has为true: ha

帝国CMS弹出登录窗口实现方法

帝国CMS弹出登录窗口实现方法 看到好多网站都用弹出登陆窗口让用户登陆注册,其实就是用JS调用一个DIV层实现的 今天我用帝国CMS具体讲一下怎么实现这个效果: 一.打开帝国CMS后台-公共模板-JS讲用登陆模板 把附件里的调用登陆模板代码复制进去-修改 二.在你的首页加入CSS样式和JS代码 1.CSS: <style> #lggoodBox{ margin:0 auto; padding:0px; text-align:left; width:370px; height:220px; ba

解决python在windows上运行弹出cmd窗口(dos窗口)

运行python程序的时候会在背景显示一个cmd,要想不显示其实很简单(虽然是我找了1个小时...才了解的基本知识) 方法1:pythonw xxx.py 方法2:将.py改成.pyw (这个其实就是使用脚本解析程序pythonw.exe) 原文: 1) Try changing the file extension to .pyw. Double-clicking a .pyw will use pythonw.exe instead of python.exe. python.exe运行的时

Jquery+div+css实现弹出登录窗口

基本思路先隐藏(dispaly:none)再显示,半透明蒙版层通过 z-index:9998; z-index:9999; 值越大越在前面 index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http: