2016-08-26 1 views
0

configurer une fenêtre Kendo HTML Helper pour afficher un message basé sur une action de l'utilisateur. Il se contente d'afficher le message, puis disparaît. Puisque cette aide va être utilisée sur chaque page et ne change jamais, j'ai décidé de l'emballer dans une aide HTML personnalisée. Il ressemble à ceci:personnalisé HTML Helper pour ajouter la fonction Javascript

 public static Kendo.Mvc.UI.Fluent.WindowBuilder CustomWindow(this HtmlHelper helper) 
    { 
     var animationOpen = new Action<PopupAnimationBuilder>(x => x.Open(open => open.Fade(FadeDirection.In).Zoom(ZoomDirection.In).Duration(700).Expand(ExpandDirection.Vertical))); 
     var animationClose = new Action<PopupAnimationBuilder>(x => x.Close(close => close.Fade(FadeDirection.Out).Zoom(ZoomDirection.Out).Duration(700).Expand(ExpandDirection.Vertical))); 
     var window = helper.Kendo().Window().Name("window").Animation(animationOpen).Animation(animationClose).Width(500).Visible(false).Title("Notice"); 
     return window; 
    } 

Cela fonctionne parfaitement, mais j'ai aussi une fonction javascript je voudrais devenir une méthode sur l'objet de la fenêtre elle-même. La fonction ressemble à ceci:

  function showMessage(message, title) { 

      if (title === null) title = "Notice"; 
      var window = $("#window").data("kendoWindow"); 
      window.content("<div style='text-align: center;'><p>" + message + "</p></div>"); 
      window.showWindow(); 
      window.title(title); 
      window.open(); 
      setTimeout(function() { 
       window.close(); 
      }, 1400); 
     } 

Est-il possible que je peux émettre cela de mon aide personnalisée et attacher idéalement le faire l'objet de la fenêtre pour que je puisse faire quelque chose comme ceci:

var window = $("#window").data("kendoWindow"); 
window.showMessage('Hello'); 

Merci pour votre aide

Earl

Répondre

0

Je ne pouvais pas comprendre votre question bien et claire, mais avec ce que je compris, je suppose que vous essayez d'ajouter une fonction en tant que propriété d'un objet. Si tel est ce que vous devez alors vous pouvez suivre cette

window.showMessage = function (message, title) { // function statements goes here }

Maintenant, la fonction showMessage sera disponible dans l'objet de la fenêtre afin que vous puissiez accéder comme

window.showMessage("This is my message", "Message title"); 
0

Il y a deux façons d'ajouter une méthode personnalisée à un widget UI Kendo:

  • Create a custom Kendo UI widget qui hérite de (étend) la fenêtre de l'interface utilisateur de Kendo. Définissez les méthodes personnalisées souhaitées. Toutefois, cette approche ne peut pas être utilisée avec le wrapper MVC de Windows.
  • passer outre le côté client du prototype de Kendo UI fenêtre. Cela devrait se produire avant que toutes les instances de fenêtre ne soient initialisées.

    kendo.ui.Window.prototype.showMessage = function(message, title) { 
        this.content("My message"); 
        this.title("My Title"); 
        this.center().open(); 
    
        var thisObj = this; 
        setTimeout(function() { 
         thisObj.close(); 
        }, 1400); 
    }