求教这段代码是什么意思

hshenji 2012-03-07 01:36:38
<xhtml:div class="fb-insert-left">
<xforms:trigger appearance="minimal"
ref=".[$readwrite-grid and xs:integer($columns) lt $max-columns]"
id="fb-insert-column-left-trigger">
<xforms:label>
<xhtml:img src="/apps/fr/style/images/silk/bullet_arrow_left.png"
alt="{$form-resources/insert-column-left-icon/label}"
title="{$form-resources/insert-column-left-icon/label}"/>
</xforms:label>
<xforms:action ev:event="DOMActivate">
<!-- Increment number of columns -->
<xforms:setvalue ref="$columns" value=". + 1"/>

<!-- Prepare span grid -->
<xforms:dispatch name="fb-prepare-span-grid" target="fr-form-model">
<xxforms:context name="grid" select="$grid"/>
</xforms:dispatch>

<!-- Figure out what tds are affected -->
<xxforms:variable name="insert-tds"
select="for $c in for $r in instance('fb-span-grid-instance')/r
return $r/c[$column-number][. != 'x']
return $grid/*:tr[count($c/../preceding-sibling::r) + 1]/*:
td[count($c/preceding-sibling::c[. != 'x']) + 1]"/>

<xforms:action xxforms:iterate="$insert-tds">
<!-- TODO: should insert fr:td instead? -->
<xforms:insert nodeset="."
origin="xxforms:element('xhtml:td', context()/@rowspan)" position="before"/>
</xforms:action>
</xforms:action>
</xforms:trigger>
</xhtml:div>
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hshenji 2012-03-07
  • 打赏
  • 举报
回复
还有段关联的。
<xforms:instance id="fb-span-grid-instance">
<grid/>
</xforms:instance>

<!-- Prepare span grid -->
<xforms:action ev:event="fb-prepare-span-grid">
<xxforms:variable name="grid" select="event('grid')"/>

<!-- Columns are either on fr:grid or fr:repeat parent of fr:grid -->
<xxforms:variable name="columns" select="($grid/@columns, $grid/../@columns)[1]" as="attribute(columns)"/>

<!-- Prepare span grid -->
<xxforms:variable name="tmp" select="instance('fb-span-grid-instance')"/>
<xforms:delete nodeset="instance('fb-span-grid-instance')/*"/>
<xforms:insert context="instance('fb-span-grid-instance')" nodeset="*"
origin="for $r in $grid/*:tr return xxforms:element('r', for $c in (1 to $columns) return xxforms:element('c'))"/>

<!-- Fill-out table with rowspan / colspan data -->
<xforms:action xxforms:iterate="instance('fb-span-grid-instance')/*"><!-- Iterating over rows -->
<xxforms:variable name="r" select="."/>
<xxforms:variable name="y" select="position()"/>

<xforms:action xxforms:iterate="$grid/*:tr[$y]/*:td"><!-- Iterating over actual tds -->
<xxforms:variable name="td" select="."/>
<xxforms:variable name="td-x" select="position()"/>
<xxforms:variable name="rowspan" select="if (@rowspan) then xs:integer(@rowspan) else 1"/>

<xxforms:variable name="c" select="($r/c[. != 'x'])[$td-x]"/>
<xxforms:variable name="x" select="count($c/preceding-sibling::c) + 1"/>

<xforms:action xxforms:iterate="$r/following-sibling::r[position() lt $rowspan]">
<xforms:setvalue ref="c[$x]">x</xforms:setvalue>
</xforms:action>
</xforms:action>
</xforms:action>
</xforms:action>

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧