- 浏览: 707385 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
shappy1978:
自己踩死自己了,我还是有远见的嘛
该死的微软,该死的IE -
calosteward:
I know Zxing and shopsavvy, bot ...
[trans]COMPARISON OF MOBILE BARCODE SCANNERS -
qq690388648:
唉……四年前的Bug,现在还没改,Apache也有不足的地方啊 ...
POI解析Word表格备忘 -
shappy1978:
Now I get to say that every met ...
Jailbreak Detection on iOS -
hebeixiaolei:
你好,我想问一下,用poi如何往word文档里插入超链接呀!
POI读取Word文档总结
网上JSP有很多级联下拉框的教程,通过第一个下拉框动态修改第二个下拉框的列表数值,这里也提供一种级联下拉框的实现方式:简单的过滤
<?xml version="1.0" encoding="UTF-8"?> <screen title="Dynamic combo"> <scrollPane style="align:fill-center;layout:inlinelayout(false,fill);gap:0 5"> <container class="formEntry" style="layout:gridlayout(2,1)"> first combo: <choice> <choiceradiogroup id="chk1" onchange="filter(#chk1.value)"> <radiobutton value="1">1</radiobutton> <radiobutton value="2">2</radiobutton> </choiceradiogroup> </choice> </container> <container class="formEntry" style="layout:gridlayout(2,1)"> second combo: <choice> <choiceradiogroup> <_renderer> <![CDATA[<radiobutton><_value>${itemValue}</_value>${itemName}</radiobutton>]]> </_renderer> <_items>@{itemList}</_items> </choiceradiogroup> </choice> </container> </scrollPane> <screenFirstMenu onAction="back">Back</screenFirstMenu> </screen>其中renderer的用法为用provider来产生列表。
Java稍微复杂一点,必须嵌套两个provider
import java.util.Hashtable; import org.kalmeo.kuix.core.Kuix; import org.kalmeo.kuix.core.model.DataProvider; import org.kalmeo.kuix.widget.Screen; import org.kalmeo.util.frame.Frame; public class combo implements Frame { protected Screen screen; // Associate our data provider to the frame protected MyDataProvider dataProvider = new MyDataProvider(); public void onAdded() { // TODO Auto-generated method stub dataProvider.initializeChoices(); screen = Kuix.loadScreen("combo.xml", dataProvider); screen.setCurrent(); } public boolean onMessage(Object identifier, Object[] arg1) { // TODO Auto-generated method stub if ("back".equals(identifier)) { // remove the current frame from the framehandler stack Kuix.getFrameHandler().removeFrame(this); // and display the main screen Kuix.getFrameHandler().getTopFrame().onAdded(); // do not propagate the message through the rest of the frame stack return false; } if ("filter".equals(identifier)) { String sFilter=(String)arg1[0]; dataProvider.getList(sFilter); } // let the next frames in the stack, process the message return true; } public void onRemoved() { // TODO Auto-generated method stub screen.cleanUp(); // unreference the screen object to free the memory screen = null; } } class MyDataProvider extends DataProvider { private static final String ITEM_LIST = "itemList"; private Hashtable data=new Hashtable(); public void getList(String sFilter){ int i=0; ChoiceListItem o=(ChoiceListItem)data.get(String.valueOf(i)); removeAllItems(ITEM_LIST); while(o!=null){ if(sFilter.equals("") || o.getItemName().indexOf(sFilter)>=0){ addItem(ITEM_LIST, o); } i++; o=(ChoiceListItem)data.get(String.valueOf(i)); } } public void initializeChoices() { for(int i=0;i<20;i++) { ChoiceListItem item = new ChoiceListItem(); item.setItemName("ItemName " + i); item.setItemValue("ItemValue " + i); data.put(String.valueOf(i), item); addItem(ITEM_LIST, item); } } } class ChoiceListItem extends DataProvider{ private String itemValue; private String itemName; public String getItemName() { return itemName; } public void setItemName(String itemName) { this.itemName = itemName; } public String getItemValue() { return itemValue; } public void setItemValue(String itemValue) { this.itemValue = itemValue; } protected Object getUserDefinedValue(String property) { // handle custom properties requests if ("itemName".equals(property)) { return this.itemName; } if ("itemValue".equals(property)) { return this.itemValue; } // default behavior if the property has not been found return null; } }这种实现方式为官方比较推荐的,即通过provider来控制界面上的数据,必须注意下面几点:
1 这种控制实机上是单向的,例如你用provider的一个属性控制文本域中的文本,但是你修改界面上的文本域内容,provider的属性值不会产生改变。必须自己用代码获取。
2 从测试的情况下看,可能是由于一个窗口的代码不能操作另外一个窗口的provider(或者其他原因?),实际上我发现有出现更新了provider界面不刷新的情况
3 上面的方法只是一种实现方式,实际上我更喜欢通过代码来控制界面,直接修改列表的子对象。
发表评论
-
关于BlackBerry在线讲座的观感
2011-03-24 16:20 921整体印象:夸夸其谈,自我陶醉,缺乏特色,迟早步palm, ... -
【转】Zxing介绍
2011-02-28 11:13 2393源地址:http://blessdyb ... -
关于Android上的虚拟机(Kuix)
2011-01-17 12:00 1800个人对于Android的 ... -
Kuix贴士
2010-12-07 14:48 1324发现TextField有onchan ... -
Kuix组件Choice发现一个新的bug
2010-11-16 09:52 1074本来想偷懒,利用choice ... -
J2ME 3.0发布了,不过好冷
2010-10-22 17:41 1094http://java.sun.com/javame/down ... -
Kuix在魅族上的安装
2010-06-18 17:11 1047今天第一次在一台魅族上安装我的程序,结果不管是签名还是 ... -
关于J2ME的外部调用
2010-04-28 14:20 1593一开始学习J2ME的时候就问过一些“高手”们,如何调用 ... -
POI word目录处理备忘
2010-04-07 10:57 3428今天发现word文件的目录处理还不完善,原来只是想着完 ... -
5800入手小记
2010-03-26 16:18 1314我去年的这个时候很恶 ... -
J2ME签名备忘
2010-03-15 14:21 1462今天拿到VeriSign的签名,使用过程中碰到几个问题 ... -
J2ME签名备忘
2010-03-01 17:15 0Thawte代码签名证书操作指南 http://www.it ... -
Kuix TableLayout bug说明(2)
2010-01-28 11:24 1386今天又测试出TableLayout 的一个bug,如果表 ... -
Kuix TableLayout bug说明
2010-01-26 16:53 1881实际上用过TableLayout来作表格的人估计都碰到 ... -
Kuix ScrollPane修改备忘录
2010-01-20 09:00 1597本次修改目标:为ScrollPane增加横向和纵向两个滚 ... -
关于Kuix如何确定Widget的大小探讨
2010-01-14 16:20 1814由于Kuix作者设计理念的影响,所有的widge ... -
【转】Nokia MIDlet(MIDP 2.0)代码签名证书申请和使用指南
2010-01-07 16:33 1439http://embed.e800.com.cn/articl ... -
SMSLib在tomcat中报NoSuchPortException的问题
2010-01-06 18:32 3205在application的project运行正常,但是 ... -
SMS-Push激活J2ME程序 备忘录
2010-01-05 18:17 1949http://www.cnblogs.com/blues ... -
【转】将自定义 widget 嵌入 Kuix 界面
2009-12-31 08:37 1160http://blog.csdn.net/defonds/ar ...
相关推荐
4. **异步加载**:对于大数据量的级联选择,可能需要在每次选择后异步加载下一级的选项,以提高页面性能。 5. **样式定制**:为了保证组件的美观和一致性,需要了解CSS或CSS预处理器(如Sass或Less)来定制组件样式...
级联下拉框(Cascading Dropdown)是一种常见的前端交互设计,它允许用户在选择一个选项后,根据所选选项动态加载并显示下一个下拉框的内容。这种效果在多级分类、地区选择、产品配置等场景中十分常见。在本教程中,...
级联下拉框是一种常见的用户界面元素,常用于在多个相关选项之间建立关联,例如国家、省份、城市的三级选择。这种交互方式可以帮助用户快速浏览和选择层级结构中的数据,而无需打开多个独立的下拉菜单。在网页开发或...
在本教程中,我们将深入探讨如何在Excel中创建级联下拉框,并通过提供的`excle动态级联.xls`示例文件来理解其实现方法。 1. **什么是级联下拉框** 级联下拉框是由两个或多个相互关联的下拉列表组成,当用户在第一...
在Android开发中,有时...总之,实现Android城市级联下拉框(自定义Spinner)需要对Spinner的基本使用、事件监听、数据更新以及界面定制有深入了解。通过不断实践和优化,我们可以创建出用户体验优秀的级联选择组件。
级联下拉框是一种常见的UI组件,它允许用户在一个下拉框的选择基础上动态加载并显示另一个相关的下拉框,这种联动效果在数据筛选、地区选择等场景中非常常见。 1. HTML基础: HTML(HyperText Markup Language)...
内部为四级的级联下拉框,分别为省份,市,县及区和镇及街道四级下拉框;(适用任何语言的纯HTML)详细截图可访问:https://blog.csdn.net/weixin_43972758/article/details/86510419 进行查询。
2. **级联下拉框**: 级联下拉框是一种交互设计,它允许用户在一个下拉框的选择基础上,打开另一个相关的下拉框,形成一种递进的筛选过程。例如,用户先选择城市,接着在选择的城市基础上展示相应的商圈或者类别。...
动态级联下拉框构件是一种常见的前端交互组件,主要用于实现多级联动选择的效果。在网页设计中,这种组件常用于地址选择、分类筛选等场景,用户在选择一级选项后,二级甚至多级相关的下拉框内容会随之更新,提供更...
AJAX级联下拉框是一种常见的前端交互设计,它利用Ajax技术实现在用户选择一个下拉选项时,动态地更新另一个相关联的下拉框内容。这种功能在数据关联、筛选和表单填写中非常常见,例如省份和城市的选择,类别和子类别...
在本文中,我们将探讨如何使用jQuery实现级联下拉框的效果,这是一个常见的前端交互功能,常用于数据筛选和表单填写。级联下拉框允许用户在一个下拉框中做出选择后,根据所选内容动态更新下一个下拉框的选项。这种...
在ASP.Net开发中,"省市地区 局部刷新 级联下拉框"是一个常见的需求,它涉及到前端用户界面的交互以及后端数据的动态加载。局部刷新技术可以提高用户体验,因为它仅更新页面的特定部分,而不是整个页面,这在处理...
使用jquery写的级联下拉框,使用jquery写的级联下拉框
4. **Action处理**:在Action中,根据用户在第一个下拉框中的选择,使用Hibernate查询数据库获取关联的子类别数据。 5. **JSP渲染**:Action将查询结果传递给JSP页面,JSP使用JavaScript或jQuery库(如AJAX)来动态...
asp读取access数据库数据,在html页面动态生成多级级联的下拉框,摆脱静态级联下拉框数据变更烦恼。
级联下拉框是一种常见的用户界面元素,常用于在网页或应用程序中提供多级选择功能。在.NET框架中,实现这种交互通常涉及到HTML、CSS、JavaScript(如jQuery)以及服务器端的技术,例如ASP.NET。本示例可能是一个...
在网页开发中,级联下拉框(Cascading Dropdown)是一种常见的交互设计,它用于在两个或更多下拉框之间建立关联,当用户在一个下拉框中选择一个选项时,其他下拉框的选项会根据所选内容动态更新。在本案例中,我们将...
4. **级联下拉框**:级联下拉框是指两个或更多下拉框之间存在依赖关系,即一个下拉框的选择会影响另一个下拉框的选项。例如,选择一个国家后,下一个下拉框会显示该国的省份或者城市。这种功能常用于地理信息选择、...
**Ajax 实现可配置无刷新级联下拉框** 在 Web 开发中,为了提供用户友好的交互体验,级联下拉框(Cascading Dropdown)是一个常见的需求。级联下拉框允许用户在一个下拉框中选择一个选项后,根据所选的选项动态更新...
在网页设计中,级联下拉框是一种常见的交互元素,尤其在处理层级关系的数据时,如地区选择、产品分类等。三级级联下拉框则是指三个互相联动的下拉菜单,当用户在一个下拉框中选择一个选项时,其他关联的下拉框会根据...