0

所以我确实在检票口中有我的按钮,我想根据两个条件之一将他设置为两个图像之一。在一种情况下,该按钮也应该被禁用。

private static final Image rwImage = new Image("rewindButton", new ContextRelativeResource("/images/rw.png"));
private static final Image rwImageGrey = new Image("rewindButton", new ContextRelativeResource("/images/rw_grey.png"));



AjaxFallbackLink rewindButton = new AjaxFallbackLink("rw") {

        @Override
        public void onClick(AjaxRequestTarget target) {

            // Sets page parameter to 0, and sets response page with a given page parameter.
            setResponsePage(MessageStorePage.class, new PageParameters().add("currentPageParameter", 0));
            //After calling above, currentPage=0;

        }

    };
    // rewindButton.setOutputMarkupId(true);
    // rewindButton.setOutputMarkupPlaceholderTag(true);
    // Displays grayed out and disabled button if current page is the first one.
    if (currentPage <= 0) {
        rewindButton.add(rwImageGrey);
        rewindButton.setEnabled(false);
    } else
        // Displays button if current page is not the first one.
        rewindButton.add(rwImage);
    // Adds "first page" button
    add(rewindButton);

一切都很酷, setEnabled 工作正常,但按钮图像随机显示(错误,不像我想要的那样)。在以隐身模式启动它时它工作正常,所以缓存/cookies可能有问题,不知道:/

有任何想法吗?

4

2 回答 2

0

我认为存在缓存问题,因为您将相同的图像(相同的 id 和所有)替换为不同的图像,无论是检票口还是您的浏览器都没有掌握它实际上不同的事实。您应该查看生成的 html 有何不同。

我认为明确禁用图像缓存可能是使其工作的一种方法。

另一个快速解决方案可能是将两个图像都添加到链接中,并根据上下文使其中一个不可见。

于 2013-07-30T10:45:20.207 回答
0
   Well, I got rid of the issue by adding:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

到我的 html 文件。

可能是一个肮脏的解决方案,但有效。

于 2013-08-02T11:45:28.237 回答