`

zk listbox 级联查询

    博客分类:
  • zk
阅读更多
因需要写一个两级联动的listbox。没有用spring 和hibernate,也没有用数据绑定。只是最简单的在<zscript>脚本里写程序。
<label value="国家:" /> <listbox id="countryy" mold="select"   onCreate="self.setSelectedIndex(0)"onSelect="change()" >
  <listitem forEach="${country}" label="${each.name}" value="${each.id}" />

</listbox >
用onselect 监听被选中国家。
<label value="地区:" />
<listbox id="arear" mold="select" fulfill="countryy.onSelect" onSelect="getAgen()"onCreate="self.setSelectedIndex(0)"></listbox<label value="经销商:" /><listbox id="agentt" mold="select" fulfill="arear.onSelect"></listbox>
根据国家id查询对应的地区,根据地区id和国家id,查询出经销商。
<zscript><![CDATA[

import bean.Area;
import bean.Agent;
void change()throws Exception{
Listitem lt=countryy.getSelectedItem();
String id=lt.getValue().toString();
List area=se.getArea(id);


if(arear.getItems()!=null){
arear.getItems().clear();}
for(int i=0;i<area.size();i++){
Listitem li=new Listitem();
li.setLabel(((Area)area.get(i)).getName());
li.setValue(((Area)area.get(i)).getArea_id());
li.setParent(arear);
}

}
void getAgen()throws Exception{
Listitem li=countryy.getSelectedItem();
String cid=li.getValue().toString();

Listitem ll=arear.getSelectedItem();
String aid=ll.getValue().toString();
List agent=se.getAgent(cid,aid);

agentt.getItems().clear();
for(int i=0;i<agent.size();i++){
Listitem lc=new Listitem();
lc.setLabel(((Agent)agent.get(i)).getName());
lc.setValue(((Agent)agent.get(i)).getAgent_id());
lc.setParent(agentt);
}
}  

]]>
</zscript>
对于zk的异步交互理解较差,所以用了最简单的清除组件,添加组件。希望对其他和我一样的新手有帮助吧。O(∩_∩)O~共勉。
还有一点小小的bug就是当地区默认第一项时,经销商是不会出来的。解决方法,不过有朋友说在显示二级联动列表的时候传个默认的一级列表的id。对 就是还用添加组件的方法:
<zscript><![CDATA[  //default area
                  import bean.Area;
        String country_id=countryy.getItemAtIndex(0).getValue().toString();
        List area=se.getArea(country_id);
for(int i=0;i<area.size();i++){
Listitem li=new Listitem();
li.setLabel(((Area)area.get(i)).getName());
li.setValue(((Area)area.get(i)).getArea_id());
li.setParent(arear);
}
]]>
</zscript>
<zscript><![CDATA[//default agent
                  import bean.Agent;
                String area_id=arear.getItemAtIndex(0).getValue().toString(); 
              List agent=se.getAgent(country_id,area_id);
        for(int i=0;i<agent.size();i++){//add items
        Listitem lc=new Listitem();
        lc.setLabel(((Agent)agent.get(i)).getName());
        lc.setValue(((Agent)agent.get(i)).getAgent_id());
        lc.setParent(agentt);
        }
]]></zscript>

但是这样加载较慢,使用数据绑定可以实现,需要使用事件监听。有实现的朋友可以相互讨论下。邮箱hong13626@foxmail.com
  • 大小: 15 KB
1
17
分享到:
评论

相关推荐

    WPF Listbox分组和级联实例

    在本实例中,我们将深入探讨如何实现`ListBox`的分组功能以及级联效果,这对于构建用户界面时组织大量数据非常有用。 **1. Listbox分组** 在WPF中,`ListBox`的分组可以通过`CollectionViewSource`和`GroupStyle`...

    C# listBox与textBox组合实现模糊查询功能

    listbox与textbox组合,实现类似google、百度搜索的模糊查询功能。textbox中输入数据,连接数据库进行模糊查找数据库记录,在将记录加载到listbox中。双击listbox中查询到的记录,再传递到testbox中显示。 希望能给...

    ZK_DEMO-listbox-paging.zip_DEMO_ListBox java

    【标题】"ZK_DEMO-listbox-paging.zip_DEMO_ListBox Java" 是一个与Java相关的压缩包,其中包含了一个示例项目,演示了如何在Java应用程序中实现ListBox的分页功能。ZK是一个基于Java的富客户端用户界面框架,它使得...

    WPF listBox 漂亮的listBOX

    在Windows Presentation Foundation (WPF) 中,`ListBox`是一个常用的数据展示控件,它允许用户从一系列项目中进行选择。本篇文章将深入探讨如何利用WPF的`ListBox`创建一个美观且功能丰富的用户界面。 首先,`...

    ListBox快速增量查询

    快速增量查询是一种优化策略,它允许我们只加载ListBox所需的一部分数据,而不是一次性加载全部数据。这种技术在大数据集或实时数据流应用中特别有用,因为它降低了内存占用并提高了用户体验。 以下是一些关于实现...

    c# Listbox自动滚动

    在C#编程中,Listbox控件是一种常用的数据展示组件,它允许程序员向用户显示一系列条目或选项。当我们处理大量数据或者实时更新内容时,可能会遇到需要实现Listbox自动滚动的功能。这个功能通常用于确保最新的添加项...

    listbox拖拽功能实现

    " ListBox拖拽功能实现" ListBox控件是Windows Forms应用程序中的一种常见控件,它能够显示一组项目,并允许用户进行选择和拖拽操作。实现ListBox控件的拖拽功能,可以使用户更方便地在不同的ListBox控件之间移动...

    asp.net级联菜单

    本篇文章将深入探讨如何使用JavaScript、ListBox和Control来实现ASP.NET的级联菜单。 首先,我们来理解一下这三个关键组件的作用: 1. JavaScript:这是一种常用的客户端脚本语言,用于增强网页的交互性。在这里,...

    ListBox中显示图片

    在WPF(Windows Presentation Foundation)应用开发中,`ListBox`是一个常用的数据展示控件,它允许用户通过列表形式查看和选择数据。在这个场景中,我们要讨论如何在`ListBox`中显示图片,这是一个常见的需求,特别...

    delphi Listbox多列显示

    标题“Delphi Listbox多列显示”所涉及的主题就是如何扩展Listbox的基本功能,使其能够支持多列显示,从而避免使用更复杂的控件如ListView。 描述中提到,通常由于Listbox不支持多列显示,开发者可能会转向ListView...

    更新的Javascript Listbox和TreeView控件

    在JavaScript编程领域,Listbox和TreeView是两种常用的用户界面(UI)控件,它们用于提供交互式的列表和树形结构数据展示。这次的更新聚焦于这两个控件的功能增强,特别是针对选择机制的优化。 首先,让我们详细...

    WPF listbox width自适应

    在Windows Presentation Foundation (WPF) 中,`ListBox` 是一个常用的控件,用于展示一系列可选项目。在设计用户界面时,我们常常希望控件能够根据窗口大小的变化自动调整其尺寸,以保持良好的布局和用户体验。`...

    ListBox自动滚动到底部

    ListBox是Windows Forms和WPF等GUI框架中常见的一种控件,用于显示一系列可选择的项。在某些场景下,如实时更新数据或者加载大量新内容时,我们需要让ListBox自动滚动到最底部,以便用户能够看到最新的信息。这个...

    ListBox实现上下左右移动

    ListBox是Windows Forms和Web开发中常用的一种控件,主要用于显示一系列可选择的项。在本文中,我们将深入探讨如何在Windows Forms或ASP.NET环境中实现ListBox的上下左右移动功能,并支持通过Ctrl键进行多选。 首先...

    WPF可以自动过滤的ListBox/ListCheckBox

    原始开发环境为VS2010 + .NET 4.0,功能为:根据输入内容实时自动过滤ListCheckBox中的数据,并进行高亮和滚动,可以快速定位。对代码调整一下就可以实现根据输入实时刷新ListCheckBox的显示,只显示符合匹配条件的...

    在ListBox快速搜寻字符串(5KB)...

    在VB(Visual Basic)编程中,ListBox控件是常见的用户界面元素,用于显示一系列的项目或数据。在大型数据集合中,实现快速搜索字符串的功能对于提高用户体验至关重要。本篇文章将探讨如何在ListBox中实现高效的字符...

    listbox拖动至另一个listbox

    在Windows Forms(WinForm)应用开发中,Listbox控件是一种常见的用户界面元素,用于显示一系列可选择的项目。在某些交互设计中,允许用户通过拖放操作将Listbox中的条目从一个列表移动到另一个列表是提高用户体验的...

    VB ListBox多列显示

    在VB (Visual Basic)编程中,ListBox控件是常见的用户界面元素,用于显示一系列选项供用户选择。然而,默认情况下,ListBox只支持单列显示。但通过一些特定的设置和编程技巧,我们可以让ListBox控件实现多列显示,...

    ListBox 鼠标拖动多选

    在Windows Presentation Foundation (WPF) 中,`ListBox`是一个常用的数据展示控件,它允许用户通过单击或使用键盘来选择一个或多个项。在某些应用场景下,用户可能需要通过鼠标拖动来实现多选,这能提高交互的效率...

    C#winform中ListBox拖拽排序

    本教程将详细讲解如何在ListBox控件中实现拖拽排序的功能。ListBox是.NET Framework提供的一种常用控件,用于显示一系列可选择的项目。在Windows应用程序中,允许用户通过鼠标或键盘操作来选择和排序这些项。 首先...

Global site tag (gtag.js) - Google Analytics