Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Autocompletetextfield中使用面板而不是字符串

在Autocompletetextfield中使用面板而不是字符串
EN

Stack Overflow用户
提问于 2013-03-18 15:28:18
回答 3查看 197关注 0票数 1

我正在使用Wicket来建立一个网站上的搜索引擎的ui。当用户键入时,结果显示在下拉列表中。因为我有很多不同的对象(每个对象都有不同的显示结构),所以我想定义几个面板。因此,对于在数据库中找到的每个项,它都会获得正确的面板和正确的结构。例如:如果搜索引擎找到一个用户,它应该只显示姓名。当找到一个图片,一个缩略图和一个描述,等等。

现在我使用的是AutocompleteTextField,但它只接受字符串。我想过在字符串中添加html并像这样显示它。但由于这不是一个真正干净的解决方案,我正在考虑使用面板。

那么,有人知道如何在AutoCompleteTextField中使用面板而不是字符串吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-18 18:38:39

创建您自己的组件。使用ListView,将其放入WebMarkupContainer中。根据TextField输入显示WebMarkupContainer,并刷新连接到TextField的OnChangeAjaxBehavior中的TextField。

这样你就可以完全控制你想要实现的目标了。

ListView的示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   private ListView getLv(){
      ListView lv = new ListView(PANEL, new PropertyModel(this, "someList")) {
         @Override
         protected void populateItem(ListItem item) {
            Integer type = item.getModelObject().getType();
            if (type == 1) {
               item.add(new PanelType1("panel", item.getModelObject().someIdMaybe));
            } else if (type == 2) {
               item.add(new PanelType2("panel", item.getModelObject().someIdMaybe));
            }
         }
      };
      return lv;
   }
票数 3
EN

Stack Overflow用户

发布于 2013-03-18 16:23:47

AutoCompleteTextField使用newAutoCompleteBehavior-hookmethod来创建显示选项的行为。此钩子方法以IAutoCompleteRenderer作为参数。这个渲染器实际上是在做显示部分。因此,您可以将自己的渲染器传递给AutoCompleteTextField (有一个接受渲染器的构造函数),也可以将AutoCompleteTextField子类化以覆盖工厂方法。无论采用哪种方式,您都必须提出自己的IAutoCompleteRenderer实现,因为wicket中没有这样的实现,而且渲染器本身将受到当前应用程序设计的严重影响。

票数 3
EN

Stack Overflow用户

发布于 2013-03-18 16:32:41

我认为使用面板是不可能的,因为面板是一个组件,本身可以是任何东西。要将任何面板作为自动完成列表的一部分来支持将是非常困难的。如果有一个自动补全元素作为带有自动补全字段的表单,那会很有趣;)

因此,这就是为什么有IAutoCompleteRenderer接口允许您为元素生成任何html标记,而不是作为面板。

作为一种选择,也许可以使用ModalWindow弹出某种模式的ajax对话框窗口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15480544

复制
相关文章
什么在代码中要求我们使用LocalDateTime而不是Date?
在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗?
用户1516716
2019/11/24
1.1K0
在Android中使用枚举注解而不是枚举
很多开发规范都是不建议在Android中使用枚举的,在Android系统中使用枚举的开销是使用常量的2倍。一般地,在一个文件中定义常量
阳仔
2019/07/31
1.4K0
在Android中使用枚举注解而不是枚举
为什么 build 方法放在 State 中而不是在 StatefulWidget 中
为什么 build 方法放在 State 中而不是在 StatefulWidget 中呢?其中前2点是源代码的注释中给出的原因,最后一点是我的一点个人理解。
老孟Flutter
2021/01/28
9160
为什么我在 Linux 上使用 exa 而不是 ls?
我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢?
用户1880875
2021/09/06
2K0
何时使用Kafka而不是RabbitMQ
Kafka 和 RabbitMQ 都是流行的开源消息系统,它们可以在分布式系统中实现数据的可靠传输和处理。Kafka 和 RabbitMQ 有各自的优势和特点,它们适用于不同的场景和需求。本文将比较 Kafka 和 RabbitMQ 的主要区别,并分析何时使用 Kafka 而不是 RabbitMQ。
wayn
2023/06/26
3540
何时使用Kafka而不是RabbitMQ
何时使用MongoDB而不是MySql
MySQL 和 MongoDB 是两个可用于存储和管理数据的数据库管理系统。MySQL 是一个关系数据库系统,以结构化表格格式存储数据。相比之下,MongoDB 以更灵活的格式将数据存储为 JSON 文档。两者都提供性能和可扩展性,但它们为不同的应用场景提供了更好的性能。
wayn
2023/08/09
1K0
何时使用MongoDB而不是MySql
何时使用Elasticsearch而不是MySql
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景
wayn
2023/08/28
3040
何时使用Elasticsearch而不是MySql
何时使用Kafka而不是RabbitMQ
Kafka 和 RabbitMQ 都是流行的开源消息系统,它们可以在分布式系统中实现数据的可靠传输和处理。Kafka 和 RabbitMQ 有各自的优势和特点,它们适用于不同的场景和需求。本文将比较 Kafka 和 RabbitMQ 的主要区别,并分析何时使用 Kafka 而不是 RabbitMQ。
wayn
2023/08/28
2600
何时使用Kafka而不是RabbitMQ
何时使用Elasticsearch而不是MySql
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景。本文将从以下几个方面对它们进行比较和分析:
wayn
2023/08/09
6900
何时使用Elasticsearch而不是MySql
SSL 中证书能否够使用IP而不是域名[通俗易懂]
前言:曾经听别人说生成证书时能够用IP地址。今天用样例证实了下用IP地址是不行的。
全栈程序员站长
2022/01/24
1K0
为啥看并发源码中,经常使用for(;;)而不是使用while(true)?
这里的区别就非常明显了,for(;;)在c语言中指令较少,也能够节省内存,没有判断跳转,是比while(1)更好的无限循环。
IT大咖说
2019/12/17
5130
为啥看并发源码中,经常使用for(;;)而不是使用while(true)?
android推荐使用dialogFrament而不是alertDialog
DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。 在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。 2、 好处与用法 使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。且Dia
xiangzhihong
2018/01/29
2.4K0
android推荐使用dialogFrament而不是alertDialog
如何优雅的在SpringBoot中编写选择分支,而不是大量if else?
部门编号通常由公司或组织的管理人员根据实际情况进行规划和安排,各个部门的编号应当具有独立性、唯一性和易于记忆等特点,以方便在日常管理活动中使用。
Designer 小郑
2023/08/01
2330
如何优雅的在SpringBoot中编写选择分支,而不是大量if else?
在应用开发中,我为什么选择 Flutter 而不是 React Native ?
作为一位开发人员,我想在本文中与大家聊聊跨平台开发领域的两大核心选项——Flutter 与 React Native 框架,并介绍我自己为什么更偏爱 Flutter。
逆锋起笔
2021/01/28
3.3K0
Java中为什么要使用单继承而不是多继承?
(1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量。
Vincent-yuan
2021/10/13
1.8K0
面试题46:为什么Redis使用SDS而不是C字符串?
【说明】最后一位遵循C字符串的空字符('\0')结尾的规则,目的是,可以直接使用C字符串的函数。其中len计数不包含‘\0’。
爪哇缪斯
2023/05/09
2700
面试题46:为什么Redis使用SDS而不是C字符串?
使用HSB而不是RGB来定义颜色
有多种方法可以在代码中定义颜色。最常用的方法是指定三种基色的值 - 红色、绿色和蓝色 (RGB)。本文通过指定色调、饱和度和亮度 (HSB) 的值来探索替代机制的使用。可以以更直观的方式使用 HSB 属性来创建颜色搭配良好的调色板。
韦弦zhy
2023/01/06
2.7K0
使用HSB而不是RGB来定义颜色
CA1831:在合适的情况下,为字符串使用 AsSpan 而不是基于范围的索引器
对字符串使用了范围索引器,并将值隐式分配给了 ReadOnlySpan<char>。
用户4268038
2022/02/19
1.1K0
JDBC为什么要使用PreparedStatement而不是Statement
前言 这篇博客不是我写的,是由刘志军大大翻译的,真心觉得很棒,而且是必学要掌握的东西,所以就转载过来了,我个人的第一篇转载文章。 开始 PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程。同时Prepar
roobtyan
2018/06/04
1.4K0
html 转换为cshtml,使用Html而不是csHtml
我想使用纯HTML页面而不是使用MVC .net的cshtml . 但是当我通过右键单击索引添加视图时,我只能看到两个选项 .
全栈程序员站长
2022/09/10
2.5K0

相似问题

SuffixIcon不使用AutoCompleteTextField

12

在面板上滚动而不是DataGridView

10

阅读DataFrame而不是面板

10

Firefox SDK使用侧边栏而不是面板

12

AutoCompleteTextField完成字符串显示问题

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文