Kendo UI: Conditionnellement la prévention d'une info-bulle s'affiche sur une cellule de la Grille
Je suis en train de travailler sur une tentative d'affichage d'un Kendo pointe de l'outil sur une cellule de la grille, d'obtenir le contenu d'un appel ajax. Mon info-bulle déclaration ressemble à la ci-dessous:
var grid = $("#myGrid").data("kendoGrid");
grid.table.kendoTooltip({
width: 300,
height: 200,
opacity: 0,
callout: true,
position: 'right',
animation:
{
close: {
effects: "fade:out"
},
open: {
effects: "fade:in",
duration: 1000
}
},
contentTemplateId: "tooltipTemplate",
filter: "td",
show: function (e) {
},
content: function (e) {
var target = e.target;
currentTarget = target;
var message = "Loading...";
if ($(currentTarget[0]).attr("name") !== undefined) {
//Do ajax call, show tool tip
}
else {
//CLOSE THE TOOTLIP
return false;
}
}
});
En bas à "autre chose", j'ai envie de fermer ou de masquer l'info-bulle depuis je n'ai pas l'attribut "nom", qui est passé dans mon appel ajax pour afficher le contenu. J'ai essayé tous les éléments suivants:
$("#myGrid").data("kendoGrid").table.kendoTooltip.hide();
$("#myGrid").data("kendoTooltip").hide();
e.sender.popup.destroy();
e.sender.popup.hide();
e.sender.popup.close();
Aucun de ces travaux! Détruire est la plus proche, mais je ne peux pas recréer la pointe de l'outil lorsque j'en ai besoin à nouveau. Tous les conseils?
il semble y avoir un peu de divergence entre la question du titre et de ce que vous essayez de le faire dans le contenu de la méthode, je propose de changer le titre pour quelque chose le long des lignes de "Conditionnellement prévenir un Kendo UI info-bulle s'affiche"
Je pense que c'est un meilleur titre, je vais l'ajuster en fonction de votre suggestion
Je pense que c'est un meilleur titre, je vais l'ajuster en fonction de votre suggestion
OriginalL'auteur loxdog | 2014-04-25
Vous devez vous connecter pour publier un commentaire.
La bulle d'aide est mis en œuvre d'une manière qui rend cela difficile. Vous pourriez l'appeler
this.hide()
enveloppé dans unsetTimeout
, mais il aura un effet de scintillement. De sorte que vous aurez probablement à rouler votre propre solution pour cela. Voici une idée pour vous aider à démarrer:Créer un
beforeShow
pseudo-événement qui est déclenché avant que l'info-bulle qui s'affiche (ce qui pourrait être fait dans une version plus sophistiquée de la mode):L'utiliser comme ceci conditionnelle, évite d'afficher l'info-bulle:
(démo)
Cette réponse, c'est super, mais j'ai une question: y aurait-il un problème si vous avez oublié de spécifier une "beforeShow' dans votre kendoTooltip config? Vous semblez être de remplacer les _show fonction avec un nouveau qui n'a rien de si 'beforeShow" n'est pas fourni... c'est à dire ne voulez-vous pas juste appeler show.appel(ce, cible) if typeof.des options.beforeShow === "function" était fausse?
Vous avez raison, bien sûr - merci pour l'astuce. J'ai mis à jour le code.
Lars, vous pouvez ajouter une ligne de code pour faire du Kendo reconnaître ce nouvel événement: le kendo.l'interface utilisateur.Info-bulle.fn.les événements.push('beforeShow'); Cette mesure angulaire de l'intégration (<div kendo-tooltip k-sur-avant-show="myController.la poignée(kendoEvent)">)
Il est en train de me tuer que c'est accepté lorsque ma réponse est beaucoup plus simple
OriginalL'auteur Lars Höppner
Je viens de tomber sur ce et a trouvé une solution qui fonctionne très bien. Le
content
événement peut fonctionner comme unbeforeShow
événement, car il est en fait appelé avant le spectacle événement est déclenché. Si nous le traitons comme unbeforeShow
événement, nous pouvons faire ceLol c'est similaire à la solution que je voulais poster, mais il ne semble pas y avoir un regain d'intérêt.
OriginalL'auteur TheMiddleMan
Si vous jetez une erreur dans le contenu de la méthode, cela permettra d'éviter l'info-bulle jamais montrer.
Si vous êtes en attente d'une réponse ajax, il suffit de créer l'info-bulle lorsque l'appel est terminé.
J'ai une meilleure solution que la création de certains de la règle css à l'avance qui vous retirer si il a un contenu, mais à moins que quelqu'un me le demande, je ne vois pas l'intérêt de prendre le temps.
Votre réponse contient des erreurs. Vous devez vous échapper de votre devis en
don\'t
ou entourer la chaîne d'erreur avec des guillemets doublesMerci vous avez raison! J'aime utiliser des guillemets simples et ne pense pas à ce sujet
Vous êtes les bienvenus, ne veulent pas que vous obtenez en bas ont voté pour elle 🙂
OriginalL'auteur KthProg
J'espère que mon post n'est pas trop tard, mais il vous aidera à peu de nous. Ceci peut être réalisé avec d'afficher et de masquer des événements où l'on peut valider l'info-bulle de texte et d'afficher ou de masquer l'info-bulle comme ci-dessous et fonctionne pour moi.
Code complet :
OriginalL'auteur Arjun V
envisager quelque chose comme
OriginalL'auteur Nick Skriloff
La plupart de ces réponses ne sont pas très bon dans la version la plus récente de Kendo. Ils ont fait plus facile.
Tout d'abord, vous devez créer votre filtre pour vérifier un attribut:
Ensuite, le modèle de votre grille, vous souhaitez déclarer l'attribut pour les colonnes que vous voulez l'info-bulle de l'afficheur:
OriginalL'auteur Ryanman