2011-09-24 5 views
0

J'ai un TableView, mais je ne souhaite pas utiliser la fonctionnalité intégrée de balayage pour supprimer pour diverses raisons. Donc, j'ai un bouton dans cette rangée qui devrait supprimer la ligne contenant. Comment ferais-je cela? L'objet TableView possède une fonction deleteRow(), mais elle nécessite la suppression de l'index de la ligne et, pour autant que je sache, il n'existe aucun moyen de l'obtenir à partir d'un objet TableViewRow.Supprimer TableViewRow dans Titanium mobile

Répondre

2

vous pouvez définir l'index de la ligne comme une propriété du bouton lorsque vous créez le bouton

vous pouvez mettre l'écouteur d'événement sur toute la ligne, détecter quand l'objet source est le bouton et vous auriez alors la index et le bouton cliquez sur l'événement pour la suppression.

il y a plusieurs approches, un certain code me aider à vous diriger vers la meilleure solution

+0

je peux accéder à la ligne à partir du bouton, je viens de définir une propriété personnalisée ._parent. Mais il n'y a pas un TableViewRow.index ou quelque chose est là? Le problème avec la définition de l'index en tant que propriété est que l'index change lorsque les lignes sont réarrangées/supprimées. – penguinrob

+1

Vous pouvez lister pour l'événement click sur la table entière, un écouteur par ligne n'est pas nécessaire. Prenez l'approche d'Aaron et vérifiez si la source est l'un de vos boutons (indice: vous pouvez détecter en fonction du titre de la source, ou d'une autre propriété d'identification sur vos boutons de suppression). Ensuite, utilisez la propriété "index" de l'événement pour déterminer quelle ligne a été utilisée. Par exemple: table.addEventListener ('click', function (evt) { Ti.UI.createAlertDialog ({ titre: clicked Index: '+ evt.index, message: « Vous avez cliqué sur une ligne! ' }). Show(); }); –

+0

Merci, c'est génial, n'avait pas pensé à cela avant – penguinrob

Questions connexes