T4下的省市二级联动菜单组件

我在论坛中曾讨论过一个组件,就是可以实现省市联动二级下拉列表。它的原理就是该组件通过Ajax方式向绑定的二级列表组件输入相应的城市数据。
1.lib配置:
把lintw_jwc.jar(附件)导入项目的lib下。
在application文件中添加组件库声明
<library id="extlib"
specification path="classpath:/com/lintw/jwc/lin.library"/> 。
2.BaseAjax组件:
我给凡使用Ajax功能的组件另配置了一个组件BaseAjax,该组件必需先被引用。
[html]:<span jwcid="baseAjax"/>(一般放在<body>后面)
[page]:<property name="functionName"/>
     <component id="baseAjax" type="extlib:BaseAjax">
         <binding name="functionName" value="functionName"/>
     </component>
functionName是一个由BaseAjax输出的javascript方法名,供其它组件调用。
3.联动列表组件例子:
[html]:
<p><form action="" method="post" name="selectForm" jwcid="selectForm">      
<p><select name="cityPropertySelect" jwcid="cityPropertySelect">
      <option value="fj">福建</option>
    </select>
</p><p><select name="citySelect" jwcid="citySelect">
         <option value="xm">厦门</option>
         <option value="fz" selected>福州</option>
        </select>
</p><P><input type="submit" name="Submit" value="提交"/></P>
</form>
[page]:
<component id="selectForm" type="Form">
       <binding name="listener" value="listener:selectSubmit"/>
  </component>
  <property name="pvalue"/>
  <asset name="citySelect" path="context:/menuxml/citySelectItem.xml"/>
  <component id="cityPropertySelect"  type="linlib:CityPropertySelection">
        <binding name="functionName" value="functionName"/>
        <binding name="value" value="pvalue"/>
        <binding name="xmlModel" value="asset:citySelect"/>
        <binding name="nextSelectionName" value="literal:citySelect"/>
  </component>
  <property name="value"/>
  <asset name="defaultSelect"  path="context:/menuxml/defaultSelectItem.xml"/>
  <component id="citySelect" type="linlib:XMLSelect">
        <binding name="value" value="value"/>
        <binding name="xmlModel" value="asset:defaultSelect"/>
  </component>
地址数据就放在context:/menuxml/citySelectItem.xml中(数据很少 )。
cityPropertySelect就是联动组件,nextSelectionName属性(String)为要绑定的二级列表组件的id。
citySelect可以是普通的select组件(这里我用自己写的XMLSelect组件)。
pvalue及value为各自的输出值。
4.结束语:
在附件里有源码及xml,有不足之处望各位大虾批评指正。

你可能感兴趣的:(JavaScript,html,Ajax,xml)