首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Wicket FeedbackPanel的info() / error()方法上调用Javascript方法?

如何在Wicket FeedbackPanel的info() / error()方法上调用Javascript方法?
EN

Stack Overflow用户
提问于 2017-03-27 23:47:43
回答 3查看 231关注 0票数 0

如何从Wicket反馈面板方法(如info()error() )调用JavaScript方法。

我想要做的是,为Wicket FeddbackPanelerror() / info()方法显示MDLsnackbar,但是为了显示快捷栏,我们必须调用一个JavaScript方法,我不知道该怎么做,特别是在非ajax调用中。

EN

回答 3

Stack Overflow用户

发布于 2017-03-28 19:07:55

您可以在renderHead(IHeaderResponse response)中创建FeedbackPanel子类并调用javascript

如下所示:

代码语言:javascript
复制
   @Override
   public void renderHead(IHeaderResponse response) {
      super.renderHead(response);
      response.render(OnDomReadyHeaderItem.forScript("callFancyJs();"));
   }

这将调用javascript,而不管是否使用AJAX。

另外,如果你需要在javascript中通过它的类型来访问FeedbackMessage,我已经添加了CSS类,我用它来设置bootstrap样式:

代码语言:javascript
复制
   @Override
   protected Component newMessageDisplayComponent(String id, FeedbackMessage message) {
      Component c = super.newMessageDisplayComponent(id, message);
      c.setEscapeModelStrings(false);
      String bootstrapClass = "text-info";
      switch (message.getLevel()) {
         case FeedbackMessage.ERROR:
            bootstrapClass = "text-danger";
            break;
         case FeedbackMessage.WARNING:
            bootstrapClass = "text-warning";
            break;
         case FeedbackMessage.SUCCESS:
            bootstrapClass = "text-success";
            break;
         case FeedbackMessage.FATAL:
            bootstrapClass = "text-danger";
            break;
         case FeedbackMessage.DEBUG:
            bootstrapClass = "text-danger";
            break;
         case FeedbackMessage.INFO:
            bootstrapClass = "text-info";
            break;
      }
      c.add(new AttributeAppender("class", bootstrapClass));
      return c;
   }

您可以使用这个类来定位javascript中的反馈消息。

票数 2
EN

Stack Overflow用户

发布于 2017-03-27 23:50:38

您必须通过在服务器端处理的AJAX请求来完成此操作,此处理程序必须调用该方法,然后将面板添加到AjaxRequestTarget以进行更新

票数 0
EN

Stack Overflow用户

发布于 2017-03-28 15:28:04

您可以从WicketStuff JGrowl集成中获得灵感:https://github.com/wicketstuff/core/tree/master/jquery-parent/jquery/src/main/java/org/wicketstuff/jquery/jgrowl

它的方式是为每条消息呈现一个<script>。此脚本包含类似于$.jgrowl({...})的文本。

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

https://stackoverflow.com/questions/43050908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档