26
2019.2
页面跳转
作者: POPASP
在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的POPASP_CONTROLLER类内置了5个跳转方法success、error、suc、err、jump,用于页面跳转提示,而且支持ajax提交。使用方法很简单,举例如下:
```brush:vb
if not M_("user").db.create(1) then
that.error( M_("user").db.error )
end if
if M_("user").db.Add() Then
' 设置成功后跳转页面的地址,默认的返回上个页面
that.success( array("新增成功","user/index",3) )
else
that.error( "添加失败" )
end if
```
that.success与that.error均为property过程,且只有一个参数,如果要输入多个参数,须用数组包裹。举例如下:
```brush:vb
'仅一个参数时,表示的是提示消息
that.success( "添加成功" )
that.error("添加失败")
'上面的两个例子,用数组实现的话,如下
that.success( array("添加成功") )
that.error( array("添加失败") )
'用数组包裹,最多可以输入三个参数,分别是:提示消息、页面跳转地址、跳转等待时间
that.success( array( "添加成功" , "user/index" ,5 ) )
'上面的例子表示,提示消息“添加成功”,跳转到user.asp,并且等待5秒
'页面跳转地址如果为空,表示跳回上个页面
that.error( array( "添加失败" , "" ,5 ) )
```
如果用一个方法表示成功与失败两种跳转,个别情况下可以使用jump方法,它也是一个property过程,且只有一个参数,但是用数组包裹后,可以输入3个参数,第1个参数表示判断条件,第2个参数对应that.success中的参数,第3个参数对应that.error中的参数。示例如下:
```brush:vb
'只输入判断条件,成功或者失败后都返回上个页面,提示消息默认为“操作成功!”、“操作失败!”
that.jump( mUser.db.Add() )
'如果只想传入添加成功的消息,可以如下使用
that.jump( array( M_("user").db.Add() , array( "添加成功" , "user/index" ,5 ) ) )
that.jump( array( M_("user").db.Add() , "添加成功" )
'条件、成功与失败三个参数全有
that.jump( M_("user").db.Add() , array( "添加成功" , "user/index" ,5 ) , that.error( array( "添加失败" , "" ,5 ) ) )
```
个别时候我们也可以使用that.suc与that.err来实现页面跳转,它们两个均为sub过程,含两个参数,第一个参数是判断条件,第二个参数是提示消息,二者均会跳转至上个页面。如下所示:
```brush:vb
'如果验证失败,跳转回去
call that.err( not M_("user").db.create(1) , M_("user").db.error )
'如果添加成功跳转回添加页面
Call that.suc( M_("user").db.Add() , "新增成功" )
'走到这步,说明肯定添加失败了
that.error( "添加失败" )
```
如果只是想修改成功跳转与失败跳转的表情符号,可以修改下面两个默认配置
```brush:vb
''默认成功时的表情符号
POP_MVC.config("TMPL_SUCCESS_FACE") = ":)"
''默认失败时的表情符号
POP_MVC.config("TMPL_ERROR_FACE") = ":("
```
成功跳转和失败跳转都有对应的模板,并且是可以设置的,默认的设置对应的模板是popasp/Tpl/dispatch_jump.html,如果要修改模板样式,可以修改配置
```brush:vb
''默认成功跳转对应的模板文件,如果设为空字符串,会自动调用系统的跳转文件
POP_MVC.config("TMPL_ACTION_SUCCESS") = ""
''默认错误跳转对应的模板文件,如果设为空字符串,会自动调用系统的跳转文件
POP_MVC.config("TMPL_ACTION_ERROR") = ""
```
修改页面跳转模板文件,请依据`popasp/Tpl/dispatch_jump.html`文件内容修改,而且要保留模板中的变量,否则起不到页面跳转的效果。
模板文件使用模板标签,并且可以使用下面的模板变量:
| 变量 | 说明 |
| --------- | ----- |
| message(必须) | 页面提示信息 |
| face(可选) | 表情符号 |
| waitSecond(必须) | 跳转等待时间 单位为秒 |
| jumpUrl(必须) | 跳转页面地址 |