三、ExtJS之对话框控件

Extjs 在实现消息框的时候,完全摈弃了传统的风格,不再弹出新的对话框,而是在当前页面跳出一个层,并将原页面完整覆盖。原来,只是一种模拟。在 Ext 中,定义了一个类MessageBox,该类还有一个更精简的名字Msg,所有消息框都定义在该类中。

建立dialogs.js文件。

提示框(Alert)

提示框的语法:Ext.MessageBox. alert ( String title, String msg, Function fn, Object scope );

参数定义如下:

  1. title:标题
  2. msg:提示内容
  3. fn:提示框关闭后自动调用的回调函数
  4. scope:作用域,用于指定this指向哪里,一般不用管他,特殊情况下有用

    其实,通常情况下,我们用得更多的是title和msg两个参数

                    

extjsAlert1=function(){
	Ext.MessageBox.alert("提示框","这是一个提示框");
}

extjsAlert2=function(){
	Ext.MessageBox.alert("提示框","这是一个提示框",function(){
		alert("提示框关闭了");
	});
}

记住函数名不要使用和DOM模型相同的名字,他们犯冲。

输入框(promt)

输入框用来提示输入字符串,相当于window.prompt()方法。

语法:Ext.MessageBox.prompt(String title,String msg, Function fn, Object scope, Boolean/Numbermultiline )

从定义中可以看到,前四个参数和提示框一样,最后多了一个参数,如果为true 或为数字,将允许输入多行或者指定默认高度(像素)。

extjsPromt1=function(){
	Ext.MessageBox.prompt("输入框","请输入您的姓名:",function(btn,txt){
		Ext.MessageBox.alert("结果","您点击了" + btn + "按钮,<br>输入内容为:" + txt);
	});
}

extjsPromt2=function(){
	Ext.MessageBox.prompt("输入框","请输入您的姓名:",function(btn,txt){
		Ext.MessageBox.alert("结果","您点击了" + btn + "按钮,<br>输入内容为:" + txt);
	},this,100);
}

单行输入

            

多行输入

           

注意回调函数的参数,第一个为点击的按钮的名字,如果点击确定,为“ok”,如果点击取消,为“cancel”,第二个参数就是用户输入的文本。

确认框(confirm)

确认框提示用户作出选择,语法如下:Ext.MessageBox.confirm ( String title, String msg, Function fn, Object scope )参数同上

extjsConfirm=function(){
	Ext.MessageBox.confirm("确认","请点击下面的按钮做出选择",function(btn){
		Ext.MessageBox.alert("您的选择是:" + btn);
	});
}

                     

可以通过回调函数的参数btn采取相应的行动。

自定义消息框(show)

show()方法的语法如下:Ext.MessageBox.show ( Object config )语法是不是显得更简单?不要小瞧了他,config这个参数可谓包罗万象,使用json格式可以传输很多信息到方法中去。

config中常见属性如下:

  • title:消息框标题栏
  • msg:消息内容
  • width:消息框的宽度
  • multiline:是否显示多行文本
  • closable:是否显示关闭按钮
  • buttons:按钮
  • icon:图标
  • fn:回调函数

在上面的例子中,不熟悉的有buttons 和icon,这些选项在Ext.MessageBox 中已有定义。

buttons(按钮)的取值如下:

  • OK:只有“确定”按钮
  • CANCEL:只有“取消”按钮
  • OKCANCEL:有“确定”和“取消”按钮
  • YESNO:有“是”和“否”按钮
  • YESNOCANCEL:有“是”、“否”和“取消”按钮

icons(图标)取值如下:

  • INFO:信息图标
  • WARNING:警告图标
  • QUESTION:询问图标
  • ERROR:错误图标
extjsShow=function(){
	var config={
		title: "自定义对话框",
		msg: "这是一个自定义对话框,想怎么搞就怎么搞",
		width: 400,
		multiline: true,
		closable: false,
		buttons: Ext.MessageBox.YESNOCANCEL,
		icon: Ext.MessageBox.QUESTION,
		fn: function(btn, txt){
				Ext.MessageBox.alert("结果", "您点击了‘yes’按钮<br>输入的值是:"
				+ txt);
		}
	};

	Ext.MessageBox.show(config);
}

          

等待对话框(wait)

wait( String msg, String title, Object config)

显示一个带有不断自动更新的进度条的消息框。这个可以被用在一个长时间运行的进程中防止用户交互。需要在进程完成的时候关闭消息框。

第三个参数表示配置选项,在本例中设置了internal选项为100,表示每100ms进度条前进一次。

extjsWait1=function(){
	Ext.MessageBox.wait('任务正在进行中,请稍候。。。','等待',{internal:100});
	setTimeout(function(){
		Ext.MessageBox.hide();
		Ext.MessageBox.alert('结束','任务已完成');
	},6000);
}

          

进度条对话框(progress)

进度条对话框也是一个自定义消息框,配置config 时添时progress=true 即可,同时还可以设置其他相关信息,如进度提示等。Extjs 为我们提供的只是一个对话框而已,进度条的滚动还得通过代码实现。下面是进度条的代码示范:

extjsProgress=function(){
	Ext.MessageBox.show({
		title:'请等待',
		msg:'正在加载...',
		progressText:'正在初始化...',
		width:300,
		progress:true,//此属性证明这是一个进度条
		closable:false
	});

	var f=function(v){
		return function(){
			if(v==12){
				Ext.MessageBox.hide();
				Ext.MessageBox.alert('完成','所有项目加载完毕!');
			}
			else{
				var i = v/11;
				Ext.MessageBox.updateProgress(i,Math.round(100*i)+'%已完成');
			}
		};
	}

	for(var i=1;i<13;i++){
		setTimeout(f(i),i*500);
	}
}

                  

在上面的代码中,progressText 属性是进度条滚动之前最初的文本,滚动进程由updateProgress(Number value, String progressText)方法来定义,参数value是从0~1之间的小数,表示进度百分比;progressText 则表示进度条滚动过程中的文本提示信息,如Ext.MessageBox.updateProgress(i, Math.round(100*i)+‘% 已完成‘);。

页面html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>对话框</title>
<link rel="stylesheet" type="text/css" href="script/resources/css/ext-all.css" />
<script type="text/javaScript" src="script/adapter/ext/ext-base.js"></script>
<script type="text/javaScript" src="script/ext-all.js"></script>
<script type="text/javascript" src="script/locale/ext-lang-zh_CN.js"></script>

<script type="text/javascript" src="js/dialogs.js"></script>
</head>
<body>
<center>
<br>
	<hr>
	<input type="button" value="简单提示框" onclick="extjsAlert1()">
	<hr>
	<input type="button" value="带有回调函数的提示框" onclick="extjsAlert2()">
	<hr>
	<input type="button" value="单行输入框" onclick="extjsPromt1()">
	<hr>
	<input type="button" value="多行输入框" onclick="extjsPromt2()">
	<hr>
	<input type="button" value="确认框" onclick="extjsConfirm()">
	<hr>
	<input type="button" value="自定义对话框" onclick="extjsShow()">
	<hr>
	<input type="button" value="等待对话框" onclick="extjsWait1()">
	<hr>
	<input type="button" value="进度对话框" onclick="extjsProgress()">
	<hr>
</center>
</body>
</html>

三、ExtJS之对话框控件

时间: 2024-10-15 13:11:37

三、ExtJS之对话框控件的相关文章

【2017-05-02】winform弹出警告框是否进行增删改操作、记事本制作、对话框控件和输出输入流

一.winform弹出警告框是否进行增删改操作 第一个参数是弹出窗体显示的内容,第二个参数是标题,第三个参数是该弹窗包含确定和取消按钮. 返回的是一个枚举类接收一下. 再进行判断,如果点的是确定按钮,再进行下一步的增删改操作. 二.记事本的制作 1.菜单工具栏MenuStrip-插入标准项 2.TextBox -显示部分 小箭头 MultiLine 选中多行 Dock属性占满. 3.功能 - 撤销 - 剪切 - 粘贴 - 复制 - 删除 - 全选 - 时间 - 查找 单独做一个窗体点击打开 把主

【ExtJs】表格控件Grid的增删改查,利用renderer让操作列actioncolumn使用文字而不是图标

在<[ExtJs]与后台数据库交互的带分页表格组件grid的查询>(点击打开链接)中介绍了Grid控件是怎么分页显示的.再加上对此控件内的数据的增加.删除.修改,就真的是大功告成了.此控件的排序,应该在后台的数据库查询语句中增加一条order by语句即可,前台的排序在分页之后,仅能对当前页进行排序,没有什么意义.下面举一个例子来说明,如果对ExtJs的表格控件Grid进行增删改查 一.基本目标 还是在数据库中有一张user表: 然后在网页中,如下图所示,通过增加.编辑.删除按钮能为这个表格控

对话框控件 MessageBox.Show()用法补充 打开新窗体的3中模式

(一)对话框控件 1.fontcolor 字体设置 属性:showcolor 可以调节字体颜色 showApply 控制显示应用按钮 例:设置一个文本框,点击按钮,文本框中的颜色字体发生改变 DialogResult dr = fontDialog1.ShowDialog(); if (dr == DialogResult.OK) { //设置文本框中的字体属性 richTextBox1.Font = fontDialog1.Font; //设置文本框中字体的颜色 richTextBox1.Fo

Android界面编程——对话框控件(四)

Android界面编程--对话框控件 2.5对话框控件 对话框是提示用户作出决定或输入额外信息的小窗口.对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件.Android中常见跟对话框相关控件有Toast.AlertDialog.PopupWindow.ProgressDialog等 2.5.1 Toast Toast用于弹出一个简单文本信息为应用提供反馈,可以和当前活动保持可见和互动,在一定时间后自动消失.Toast有两种形式基本Toast和自定义Toast,效果如图2.5.1

对话框控件绑定变量及操作

对话框控件绑定变量 右键单击控件,添加变量. 复选框:添加变量为控件变量.可以操作控件. 列表框:选择添加变量的控件的ID. 列表框:选择添加的变量的类别,Control为控件控制类型.Value为关联值变量,可以设置数据验证 编辑框:添加的控件变量名. 复选框:不选中,则为控件关联一个变量.不可以操作控件. 列表框:选择关联变量类型. 编辑框:添加的控件变量名.  头文件中添加的变量 // CMFCTestDlg dialog class CMFCTestDlg : public CDialo

Extjs表单控件入门

ExtJs表单控件用formPanel来做为表单元素的容器.默认情况下,是使用Ajax异步提交. 大家知道要使用Extjs必须引入他的库,所以我们要引入以下几个文件: ext-all.css ext-base.js ext-all.js PS:笔者采用的是extjs3.0版本 那怎么加载插件呢?放心,extjs有自己加载的方法: Ext.onReady(function(){ //coding... } 实例代码: var formPanel=new Ext.form.FormPanel({ t

6.30 winform 对话框控件

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.IO; 7 using System.Linq; 8 using System.Text; 9 using System.Windows.Forms; 10 11 namespace _6._30_上午_对话框控件

容器控件,对话框控件,流,路径的简单概念

布局主要有2个属性: Anchor:锁定位置,相对于父级容器Dock:填充位置(上下左右,剩下全部)一般Dock是与容器控件配合使用 容器控件:Panel:就是一个区域,类似于DIV,可以独立布局,还可以让其它控件及容器在它的内部再次布局 FlowLayoutPanel:流式布局容器,内容会默认从左向右排列,如果宽度不够了,那么自动换行,就像html里的flow,可以用来做导航栏 GroupBox:依然是容器,拥有Panel全部属性,比Panel多了个标题和边框样式 TabControl:选项卡

android 33 对话框控件

对话框控件:最多3个按钮. mainActivity.java package com.sxt.day05_09; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.View; import android