[转]Form中控制Tab画布不同标签间切换的方法

转自:http://yedward.net/?id=68

Form中一般常用的画布类型包括content、stacked、tab这三种,其实content类型的画布是每一个form都必须有的,而且只能有且仅有一个。其中,Tab画布算是比较特殊的一种画布了,首先不能直接在Tab上放置任何item,所有的item都是放在Tab的下属的标签页中,其次它的切换也还是蛮有门道的,这篇文章就聊聊怎么控制Form中Tab画布不同标签之间的切换。

假设有这样一个例子,有一个Tab画布(名为TAB_DEMO),其下有headers、lines两个标签页,同时还有一个名为order_lines_stacked的stacked类型的画布,我想实现,headers是第一个标签页,也是默认展示的标签页,我要把order_lines_stacked放在lines标签里面,当切换到lines的时候,order_lines_stacked显示,切换到headers的时候,order_lines_stacked又隐藏掉。

对于上面这个例子,首先要知道的是Tab画布及其标签页和堆叠画布其实是独立的,并不能直接通过属性设置来让stacked画布放置在某一个Tab标签页中,这个时候想要实现这样的功能,就要通过代码来实现,这也就是我要说的Tab特殊的一个地方。这里,我们要用到一个Form级的WHEN-TAB-PAGE-CHANGED触发器,特别要注意的是该触发器的fire条件是用鼠标点击时才触发,也正因为这样后面我们还要加一个触发器,以实现当是使用快捷键而不是鼠标点击来切换标签时候的功能实现。

对于上面的例子,实现过程如下:

在Form级添加WHEN-NEW-FORM-INSTANCE,代码如下:

set_canvas_property(‘TAB_DEMO‘, TOPMOST_TAB_PAGE, ‘HEADERS‘);
hide_view(‘ORDER_LINES_STACKED‘);

在Form级添加WHEN-TAB-PAGE-CHANGED,代码如下:

if :system.tab_previous_page = ‘HEADERS‘ then
    validate(block_scope);
    if :system.MODE = ‘ENTER-QUERY‘ or not form_success then
        set_canvas_property(‘TAB_DEMO‘, topmost_tab_page, :system.tab_previous_page);
        return;
    end if;
elsif :system.tab_previous_page = ‘LINES‘ then
    validate(block_scope);
    if :system.MODE = ‘ENTER-QUERY‘ or not form_success then
        set_canvas_property(‘TAB_DEMO‘, topmost_tab_page, :system.tab_previous_page);
        return;
    end if;
end if;
if :system.tab_new_page = ‘LINES‘ then
    show_view(‘ORDER_LINES_STACKED‘);
    go_item(‘ORDER_LINES.ORG‘);           --  ORDER_LINES.ORG是一个Item,假设本来LINES标签页上就已经设置了
elsif :system.tab_new_page = ‘HEADERS‘ THEN
    hide_view(‘ORDER_LINES_STACKED‘);
    go_item(‘ORDER_HEADERS.DESCRIPTION‘);      -- ORDER_HEADERS.DESCRIPTION是一个Item,假设本来HEADERS标签页上已经设置了
end if;

如果是使用快捷键切换的话,不会触发上面的trigger,所以做如下处理:

在ORDER_LINES.ORG这Item上面添加一个WHEN-NEW-ITEM-INSTANCE触发器,代码如下:

show_view(‘ORDER_LINES_STACKED‘);

在ORDER_HEADERS.DESCRIPTION上面添加一个WHEN-NEW-ITEM-INSTANCE触发器,代码如下:

hide_view(‘ORDER_LINES_STACKED‘);
时间: 2024-11-07 23:20:08

[转]Form中控制Tab画布不同标签间切换的方法的相关文章

form中的action,submit="return save()"以及ajax提交方法

<form enctype="multipart/form-data" method="post" name="formform1" id="formform1"action="" onsubmit=""> <table border="1" cellspacing="0" align="center" bgc

使用html &lt;a href=&quot;&quot;/&gt;标签连接action的方法

<a href="<s:url action="blogList"/>">XXXX</a>即可 更简单的写法是 <a href="blogDelete.action?id=XXX">直接写就行了 如果这个Action在struts里面声明的时候有命名空间如/user 那么写成<a href="user/blogDelete.action?id=XXX"> 使用stru

bootstrap框架中data-toggle=&quot;tab&quot;属性会取消a标签默认行为

这几天做公司项目用了bootstrap框架,在用导航组件的过程中,我发现在a标签里面添加data-toggle="tab"属性之后,这个a标签会失去默认行为,点击a标签的时候不会跳转,即使有href属性,但是它不管用.So,如果想要实现它导航栏的效果,又要能够让链接有效,只能去掉data-toggle="tab"属性.但是动态切换导航按钮的active属性就实现不了,但是实现了跳转,active属性还有什么用呢?就算有也看不到(小记)

FORM中的MOAC控制

1.创建表时,对_ALL表创建同义词 -- Create Multi Org Synonym CREATE  OR REPLACE  SYNONYM CUX_WF_DEF_HEADER FOR CUX.CUX_WF_DEF_HEADER_ALL; 2.对表添加VPD -- Create Multi Org VPD Policy BEGIN dbms_rls.add_policy(object_name     => 'CUX_WF_DEF_HEADER', policy_name     =>

Web前端开发如何利用css样式来控制Html中的h1/h2/h3标签不换行

  H1/H2/H3/H4标题标签常常使用在一个网页中唯一标题.重要栏目.重要标题等情形下. H1在一个网页中最好只使用一次,如对一个网页唯一标题使用.H2.H3.H4标签则可以在一个网页中多次出现,但必要随意添加或添加过度. 在Web前端开发中,经常要使用H1标签对关键字进行优化,可是如果是一行文字中的某个词加上了H1标记,就会换行.可以使用下面的方法,H标签就不会强制换行了.Css控制为一行文字中某个字加上<h2>标签不换行,display:inline; 解释为:内联对象的默认值.用该值

HTML5中的&lt;canvas&gt;画布:使用canvas元素在网页上绘制线条和圆(1)

什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. 创建 Canvas 元素 向 HTML5 页面添加 canvas 元素. 规定元素的 id.宽度和高度: 1 <canvas id="myCanvas" width="200" height="100"></ca

在VC++中使用Tab Control控件

系统环境:Windows 7 软件环境:Visual Studio 2008 SP1 本次目的:在模态或非模态对话框中使用Tab Control控件,及引申在单/多文档中使用 查阅MSDN文档,对于创建Tab Control控件,MSDN上说明如下: To use CTabCtrl directly in a dialog box 1.     In the dialog editor, add a Tab Control to your dialog template resource. Sp

node.js+react全栈实践-Form中按照指定路径上传文件并

书接上回,讲到“使用同一个新增弹框”中有未解决的问题,比如复杂的字段,文件,图片上传,这一篇就解决文件上传的问题.这里的场景是在新增弹出框中要上传一个图片,并且这个上传组件放在一个Form中,和其他文本字段一起提交给接口. 这里就有几个要注意的问题: 图片上传时最好能在前端指定图片类型,根据这个类型上传到指定的目录.比如这里是新增用户,上传用户图片,那么这里就指定类型是“user”,那么就把这个文件上传到服务器的upload/user目录中.这样方便后期维护,比如要把项目中的文件统一迁移到另外一

web前端中实现多标签页切换的效果

在这里,实现多标签页效果的方法有两个,一个是基于DOM的,另一个是基于jquery的,此次我写的是一个对于一个电话套餐的不同,显示不同的标签页 方法一: 首先,我们要把页面的大体框架和样式写出来,html和css代码如下: <ul id="tab">    <li id="tab1" onclick="show(1)">10元套餐</li>    <li id="tab2" oncli