backbase

backbase 是一个企业级的AJAX框架
它分成二部分 js引挚bpc(backbase presentation client)和标签(B,S)
它的命名空间是xmlns:b=http://www.backbase.com/b,xmlns:s=http://www.backbase.com/s
 BXML 是 stands forBackbase eXtensible Markup Language
 三部分:
 System tags (s:tags)
 Backbase controls (b:tags)
 Generic attributes (b:tags)
 Events and commands (b:tags)

XPathis a language for addressing parts of anXMLdocument 
 

 以下是一些问题的解答

 

xml 代码
  1.   
  2.     1. How to access data entered to the datagrid by the user?   
  3. 每个能够编辑的列都有一个控件实例来供用户输入新的值,这个控件实例就在<b:datatype>中定义,并且这个实例被整个列的所有单元格共享。如果想在用户输入之后立即得到新值,可以相应这个实例的blur事件,用户输入的值一般在value 属性中存储。例如:   
  4. <b:datatype b:name="text">  
  5.          <input type="text" value="default" >  
  6.         <s:event b:on="blur">  
  7.             <s:task b:action="alert" b:value="{@value}" />  
  8.         s:event>  
  9.      input>  
  10. b:datatype>  
  11. 选中的单元格的HTML引用在b:datagrid实例的datagrid-selected-cells 变量中存储。访问这个变量就可以知道当前选中的单元格。   
  12.   
  13. 如果想在用户对整个页面编辑之后一起提交所有的更改。可以使用如下代码:   
  14. <b:button>send changes   
  15. <s:event b:on="command">           
  16.             <s:task b:action="send" b:source="id('datagrid1')/b:datagridbody/html()/table/tbody/tr[@b:status]" b:destination="id('datagrid1')" b:url="response.jsp" b:mode="replace" />  
  17.             <s:task b:action="remove" b:target="id('datagrid1')/b:datagridbody/html()/table/tbody/tr/@b:status" />  
  18.          s:event>  
  19. b:button>  
  20. 在上述代码中,datagrid的id是datagrid1,当用户点击这个按钮的时候,就会把所有编辑过的行发送到服务器端。并用服务器返回的新的整个的datagrid数据替换现有的。 注意,一旦有一个单元格被编辑过,它所在行的b:status属性就被摄制了updated,当提交完所有的更改之后需要手动删除这个属性,以恢复到其初始状态。当然服务器返回的数据可以是一个成功与否的标志,不需要是整个datagrid的数据,如果想手动解析服务器返回数据,可以把返回的数据存储到一个变量中。这个变量在send task的b:destination属性中被指定。   
  21.   
  22.   
  23. 2. Can you control only loading the focused window?   
  24. B:window的b:open属性指定是否默认状态下窗口是显示的,并不制定何时装载窗口数据。如果需要当窗口打开的时候再装载数据,可以手动相应b:window的show事件。并用load命令装载数据并插入到窗口中。请看如下代码:   
  25.     <b:button>  
  26.         load on open   
  27.         <s:event b:on="command">  
  28.             <s:task b:action="show" b:target="id('window')"/>  
  29.         s:event>  
  30.     b:button>  
  31.     <b:window id="window" b:open="false" style="left:100px; top:100px">  
  32.         <b:windowhead>  
  33.             Title   
  34.         b:windowhead>  
  35.         <b:windowbody>  
  36.                
  37.         b:windowbody>  
  38.         <s:event b:on="show">  
  39.             
  40.             <s:task b:action="load" b:url="iframe.xml" b:destination="b:windowbody" b:mode="replacechildren" b:test="count(b:windowbody/*) = 0" />  
  41.         s:event>  
  42.     b:window>  
  43. 其中的iframe.xml文件包含了<iframe> tag, 比如:   
  44. xml version=”1.0”?>  
  45. <iframe src=”f.do?” style=”width:100%;height:100%;overflow:hidden;”>iframe>  
  46. 3. How to control add/delete new records in the datagrid?   
  47. 在客户端删除行可以调用datagrid的delete-row方法。请看如下代码:   
  48. <div>  
  49. Delete selected rows   
  50. <s:event b:on=”command”>  
  51.     <s:task b:action="trigger" b:event="delete-row" b:target="id(datagrid1)" />  
  52. s:event>  
  53. div>  
  54. 当行被删除以后此行的b:status属性会被自动设置成deleted.可以用xpath检测这个属性来得知那些行被删除了,以便提交到服务器端,类似的检测和提交代码请参照第一个问题的示例代码。   
  55.   
  56. 添加新行需要首先发送一些数据通知服务器端,告诉服务器需要添加一个新行,同时也可以使用一些初始化值,然后等待服务器端发送整个datagrid,包含已经添加的新行到客户端。   
  57.   
  58. 发送添加新行的通知可以使用send命令,例子如下:   
  59. <b:button>  
  60.     Add New Row   
  61.     <s:event b:on="command">  
  62.         
  63.         <s:variable b:name="request">  
  64.             <request>  
  65.                 <addrow>  
  66.                     <cell>this is initial data for column 1cell>  
  67.                     <cell>this is initial data for column 2cell>  
  68.                 addrow>  
  69.             request>  
  70.         s:variable>  
  71.         
  72.         <s:task b:action="send" b:url="server.jsp" b:source="$request" b:destination="id('datagrid1')" b:mode="replace" b:autoroot="false" />  
  73.     s:event>  
  74. b:button>  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值