繁体   English   中英

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

[英]How to call a Javascript method on info() / error() method of Wicket FeedbackPanel?

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

我想做的是显示Wicket FeddbackPanelerror() / info()方法的MDL 小吃 FeddbackPanel 但是要显示小吃栏,我们必须调用JavaScript方法。 我不知道该怎么做,尤其是在非ajax调用中。

您可以将FeedbackPanel子类化,并在renderHead(IHeaderResponse response)调用javascript。

像这样:

   @Override
   public void renderHead(IHeaderResponse response) {
      super.renderHead(response);
      response.render(OnDomReadyHeaderItem.forScript("callFancyJs();"));
   }

无论是否使用AJAX,这都将调用javascript。

此外,如果您需要按javascript中的类型访问FeedbackMessage ,则将它们添加到CSS类中,以用于引导样式:

   @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中的反馈消息。

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

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

它为每个消息呈现<script>的方式。 该脚本具有$.jgrowl({...})类的文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM