GWT SimplePager:如何在寻呼机中提供 GoTo 功能?

Posted

技术标签:

【中文标题】GWT SimplePager:如何在寻呼机中提供 GoTo 功能?【英文标题】:GWT SimplePager : How to provide GoTo Functionality in pager? 【发布时间】:2011-12-12 07:06:15 【问题描述】:

我使用的是 GWT2.3。 我们通过覆盖 SimplePager 开发了 CustomPager。

我们重写 createText() 方法,使用以下代码显示字符串,例如“Page 1 of 4”

    public String createText() 
        if(searchRecordCount%pageSizeForText == 0)
            totalPages = searchRecordCount/pageSizeForText;
        else
            totalPages = (searchRecordCount/pageSizeForText) + 1;
        
        NumberFormat formatter = NumberFormat.getFormat("#,###");
        return "Page "+formatter.format(this.getPage()+1) + " of " + formatter.format(totalPages);
      

现在我想为 CurrentPage 使用 TextBox,以便用户可以在 textBox 中输入页码。 (功能GoTo输入pageNumber)

createText() 返回字符串,所以我不能使用 textBox ;) + 不能提供 css

我该怎么做?有没有办法解决这个问题?解决方法(如果有)或示例代码

【问题讨论】:

【参考方案1】:

有两种方法可以实现:

1.) 使用 HTML 代码创建文本框

createText() 函数中,您可以使用html 代码手动创建文本框(最好使用SafeHTML templates 以避免XSS):

String textbox_str = "<input type='textbox' name='goto'>";

但是,您必须编写代码来处理实际事件(即 ChangeEvent)并使用 JSNI 调用 SimplePager 的 setPage()

2.) 将 TextBox 小部件添加到 SimplePager 并覆盖构造函数

SimplePager 基本上是一个 Composite,它在其构造函数中为前向和后向链接添加 ImageButtons。 您可以扩展 SimplePager 添加一个 TextBox 并覆盖构造函数以在前进和后退 ImageButtons 之间添加 TextBox。

【讨论】:

感谢您的回复。在 #1 答案中:如何在 createText() 中添加 SafeHtmlTemplates ? 使用SaveHTMLBuilderSaveHTMLTemplate。有关详细信息,请参阅here。 createText() 从 onRangeOrRowCountChanged() 调用的方法和 createText() 的输出在 SimplePager.java 中设置为字符串而不是 html :( 即 html_label.setText(createText()); 应该有 htmlLabel.setHtml ("...html 或字符串。") 如何在前进和后退按钮之间添加一个文本框。 你的第二个建议就像一个魅力。覆盖onLoad 并使用((HorizontalPanel) getWidget()).insert(textBox, 2) 添加我的TextBox 使其显示在中间(假设您使用4 个按钮)。

以上是关于GWT SimplePager:如何在寻呼机中提供 GoTo 功能?的主要内容,如果未能解决你的问题,请参考以下文章

GWT SimplePager - 获取不正确的寻呼机索引 onclick 的 LastButton

GWT SimplePager 中基于百分比的快进按钮

在Selenium中测试GET简单寻呼机图像按钮启用状态

在 Selenium 中测试 GWT SimplePager ImageButton 启用状态

GWT 2.5.1 CellTable 和 SimplePager 问题

GWT DataGrid/CellTable:选择多个页面