`
lhx1026
  • 浏览: 308275 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

wicket基础应用(3)——wicket控件的隐藏和显示

阅读更多
    在一个项目,页面经常要显示和隐藏一些控件,用wicket来控制显示和隐藏控件相当的方便。

1、最简单的隐藏和显示方法:

wicket的控件大部分都有setVisible(...)方法,用这个方法就可以隐藏和显示大部分的控件。


addEntSpNumPanel.setVisible(true);//显示
showSpNumUsePanel.setVisible(false);//隐藏


如果要点击某个控件的同时隐藏这个控件本身,可以这样做:

Button addSpNumButton = new Button("addSpNum") {
			@Override
			public void onSubmit() {
				addEntSpNumPanel.setVisible(true);
				showSpNumUsePanel.setVisible(false);
				this.setVisible(false);//隐藏控件本身
			}
		};


2、通过ajax方式隐藏控件

这个可以说wicket一个做的不大好的地方。通过ajax方式隐藏控件要分两种情况分析。
(1)隐藏单一控件:

如果只是要隐藏一个控件,就比较容易做,比如,通过下拉框的ajax方式隐藏一个下拉框控件:
		actTypeChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {

			@Override
			protected void onUpdate(AjaxRequestTarget target) {
				dataGroupChoice.setVisible(true);
				target.addComponent(dataGroupChoice);
			}

		});



actTypeChoice是一个下拉框控件,当控件的值改变时,触发onUpdate(..)事件。在这里也要注意,target.addComponent(dataGroupChoice)中的控件dataGroupChoice必须设置一个属性才能正常隐藏显示,否则会报异常。属性如下:

dataGroupChoice.setOutputMarkupId(true);


(2)隐藏一个以上的控件

如果你要隐藏一个以上的控件,比如要隐藏一个表格,那么就最好把这个表格放在一个WebMarkupContainer里面,这样隐藏的时候只要控制这个WebMarkupContainer控件就可以了。看例子:

<span wicket:id="addEntSpNumPar">
<span wicket:id="addEntSpNum">
        <table cellspacing="0" cellpadding="0" width="100%">
          <tr>
            <th align="right" style="width: 60px;">测试:&nbsp;</th>
            <td style="width: 60%">
              <input type="text" wicket:id="spNum"/>
            </td>
          </tr>
          <tr>
            <th align="right" style="width: 60px;">测试2:&nbsp;</th>
            <td style="width: 60%">
              <input type="text" wicket:id="spNum2"/>
            </td>
          </tr>
        </table>
</span>
</span>


WebMarkupContainer addEntSpNumPanelPar = new WebMarkupContainer("addEntSpNumPar");
WebMarkupContainer addEntSpNumPanel = new WebMarkupContainer("addEntSpNum");
addEntSpNumPanel.setOutputMarkupId(true);
addEntSpNumPanelPar.add(addEntSpNumPanel);
TextField spNumText = new TextField("spNum", new Model());
addEntSpNumPanel.add(spNumText);
TextField spNumText2 = new TextField("spNum2", new Model());
addEntSpNumPanel.add(spNumText2);


改变事件:
		actTypeChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {

			@Override
			protected void onUpdate(AjaxRequestTarget target) {
				addEntSpNumPanel.setVisible(false);
				target.addComponent(addEntSpNumPanelPar);
			}

		});


2
0
分享到:
评论

相关推荐

    wicket 基础知识培训

    在Wicket基础知识培训中,首先会涉及到的是Web开发的基础——Servlet技术。Servlet是一种用于扩展Web服务器功能的Java类,它允许开发者处理HTTP请求并生成响应。Servlet的核心特性包括其服务器端运行、遵循特定规范...

    wicket基础控件

    以上是Wicket基础控件的一些关键概念,通过这些控件的组合和扩展,开发者可以构建出复杂且功能丰富的Web应用。在实际项目中,还需要了解如何处理事件、进行数据验证、应用CSS样式以及与其他服务集成等知识。Wicket的...

    wicket常用控件使用方法

    在深入探讨Wicket控件之前,我们需要了解几个基础概念: - **Model**:模型是Wicket框架的核心组成部分之一,用于存储控件的数据。它可以容纳任何类型的对象,因为其内部类型为`Object`。 - **Component**:组件是...

    【翻译】Wicket启示录——理论与实践(一)

    博文链接:https://superleo.iteye.com/blog/181053

    创建并扩展Apache_Wicket_Web应用.doc

    例如,如果需要在主页面的页眉添加链接,可以创建一个新的Wicket组件,然后在不改动基础应用源码的情况下,通过Maven和WAR插件的配置,将这个新组件加入到Global项目中。 总结来说,这篇文章提供了一套详细的步骤,...

    wicket指南

    3. **可测试性**:由于业务逻辑与视图分离,Wicket 应用易于进行单元测试和集成测试。 4. **可扩展性**:Wicket 支持自定义标签库和组件,允许开发者根据需求创建新的功能模块。 5. **JSR 168/286 支持**:Wicket ...

    wicket例子和开发指南

    Wicket是一个开源的Java Web应用程序框架,它提供了一种组件化的开发方式,使得Web应用的构建更为简单和直观。这个压缩包包含了一个Wicket的开发指南PDF文档以及一些示例项目,这些都是学习和掌握Wicket框架的重要...

    wicket文档

    Wicket的名称来源于板球运动中的“wicket”,象征着轻巧和速度。 **1.2 关于重新发明轮子的争论** 在Wicket的发展过程中,有一些声音质疑其是否必要重新创造一个Web框架。尽管存在这样的争议,但Wicket通过提供...

    Wicket.pdf(Wicket开发指南)

    - Wicket 是一种基于 Java 的 Web 应用框架,最初由 Marc Guillemot 和 Eelco Hillenius 开发。 - 该框架首次公开发布是在 2004 年,自那时起经历了多次重大更新,逐渐成为一种成熟的 Web 开发工具。 - **设计...

    Wicket开发指南-简体版

    - **Component的继承体系**:Wicket中的基本组件类及其派生类构成了控件的基础。 - **MarkupContainer的继承体系**:用于组织和管理组件。 - **Link的继承体系**:提供超链接功能。 - **FormComponent的继承体系**:...

    wicket 官方JAVA教程

    这些库文件通常包含了框架的类库、依赖和其他必要的资源,是构建Wicket应用的基础。开发者需要将这些库添加到项目构建路径中,才能正常编译和运行Wicket项目。在实际开发过程中,了解并熟练运用这些库中的类和方法,...

    apache-wicket-7

    1. **组件生命周期**:Wicket组件有三个主要状态——创建、渲染和服务。创建时,组件实例化;渲染时,组件将自身呈现到页面上;服务时,处理用户交互。了解这些生命周期对于优化性能和管理组件状态至关重要。 2. **...

    Wicket开发指南

    - **信息输出控件**:如Label用于显示文本信息。 - **控件容器**:用于组织其他控件,如Panel、Border等。 - **超链接控件**:实现页面间的跳转。 - **表单输入控件**:包括Text、Password、Checkbox等多种类型的...

    apacke-wicket-mvn编译

    Apache Wicket是一款开源的Java Web应用框架,它以组件为基础,提供了丰富的功能来帮助开发者创建动态、交互式的Web应用程序。 【描述】:“自用,在线转移资源,使用带mvn插件的eclipse直接导入即可。”这说明这个...

Global site tag (gtag.js) - Google Analytics