【问题标题】:GWT SimplePager : How to provide GoTo Functionality in pager?GWT SimplePager:如何在寻呼机中提供 GoTo 功能?
【发布时间】: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

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

【问题讨论】:

    标签: java gwt pager gwt-2.2-celltable


    【解决方案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 个按钮)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 2011-03-31
    相关资源
    最近更新 更多