Graal: filtrer les données dans un Graal tableau dynamiquement
J'ai une table, avec une série d'événements,
nom de ma classe est Entrée.
Voici une photo de mon tableau
est en espagnol, mais les bases sont les mêmes, de sorte qu'il ne devrait pas être un problème.
(le filtre code HTML n'est pas encore ses un gâchis, mais il fonctionne)
et voici les résultats que j'obtiens quand je regarde pour l'entrée.
http://i45.tinypic.com/r1iexv.jpg
Maintenant, mon problème est que j'ai besoin de résultats à afficher/filtré dans la même table de pic1, de sorte qu'il serait fondamentalement comme un tableau de mise à jour de l'application de filtres.
Si vous avez besoin de plus d'info voici le lien de mon ancienne question. Grâce proflux!
J'ai un tas de données, et j'ai besoin d'un filtre de données à l'aide de Graal
La plupart du code de la recherche est là,
Toute aide serait grandement appréciée!
Mise à JOUR:
J'ai un problème de filtrage les dates que... j'ai deux dates...
L'une est la date de l'événement va avoir lieu, et l'autre est lastUpdated qui je pense est un mot-clé pour le graal, pour la dernière fois que vous avez modifié l'Événement. Toute aide relative au filtrage des dates serait grandement apprécié.
J'ai besoin de tout montrer sur la première table à partir de la date d'aujourd'hui. Et si je veux trouver quelque chose du passé, je devrais être en mesure d'utiliser le filtre pour le trouver.
Des idées sur comment faire cela?
Mise à JOUR:
Voici donc ma liste.gsp
http://i49.tinypic.com/291ksy1.png
et voici mon searchResults.gsp avec les filtres appliqués pour le mot "Ruta"
Donc, fondamentalement, tout a l'air sympa et jolie, mais les filtres de date ne sont pas de travail.
Voici le code du contrôleur qui n'est pas de filtrage les dates
def searchResults = {
def entryCriteria = Entry.createCriteria()
def results = entryCriteria.list {
if(params?.proyectoRuta) {
ilike("proyectoRuta","%${params.proyectoRuta}%")
}
}
if(params?.day) {
eq("fechaCambio", params.day)
}
render(view:'searchResults', model:['results':results])
}
est de filtrer le mot, mais pas les dates
proyectoRuta
serait le titre et fechaCambio
serait la date indiquée dans la première colonne. Je n'ai pas essayé de filtrer les lastUpdated encore de date.
Mise à JOUR:
Ok, donc voici mon controller: Depuis, c'est beaucoup de code, je ne poste important defs
def search = {
render(view:'search')
}
def searchResults = {
def entryCriteria = Entry.createCriteria()
def results = entryCriteria.list {
if(params?.fechaCambioD && params?.fechaCambioH) {
between("fechaCambio", params.fechaCambioD, params.fechaCambioH)
}
if(params?.lastUpdatedD && params?.lastUpdatedH) {
between("lastUpdated", params.lastUpdatedD, params.lastUpdatedH)
}
if(params?.proyectoRutaN) {
ilike("proyectoRuta","%${params.proyectoRutaN}%")
}
}
render(view:'searchResults', model:['results':results, 'proyectoRutaN':params?.proyectoRutaN, 'fechaCambioD':params?.fechaCambioD, 'fechaCambioH':params?.fechaCambioH, 'lastUpdatedD':params?.lastUpdatedD, 'lastUpdatedH':params?.lastUpdatedH])
}
}
Et voici le searchResults.gsp
<tbody>
<g:each in="${results}">
<td><g:formatDate format="dd-MMMM-yyyy" date="${it.fechaCambio}" /></td>
<td><b>${it.proyectoRuta}</b></td>
<td>${it.summary}</td>
<td><g:formatDate format="dd-MMM-yyyy HH:mm z" date="${it.lastUpdated}" /></td>
<td>
<g:form>
<g:hiddenField name="id" value="${it?.id}" />
<span class="simple"><g:actionSubmit class="editar" action="edit" value="${message(code: 'default.button.editar.label', default: ' ')}" /></span>
<span class="simple"><g:actionSubmit class="eliminar" action="delete" value="${message(code: 'default.button.eliminar.label', default: ' ')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Esta seguro que desea Eliminar?')}');" /></span>
</g:form>
</td>
</tr>
</g:each>
</tbody>
OriginalL'auteur randomizertech | 2010-06-23
Vous devez vous connecter pour publier un commentaire.
Essayez ceci à l'aide de la même spg pour à la fois les résultats et les critères de recherche...
Et puis pour votre contrôleur de fermetures:
C'est à partir d'une rapide démo, je l'ai écrit vraiment rapide, mais à partir de l'info que je vous ai donné sur l'autre question, et la Graal Documentation De Référence sur l'utilisation de critères de requêtes, vous devez être en mesure de le comprendre. Laissez-moi savoir si vous rencontrez des problèmes.
Mise à jour:
Essayer quelque chose comme cela pour votre entre critères:
lastUpdated est une variable spéciale de Graal, mais il peut effectivement faire tout ce que vous voulez; il mettra à jour cette valeur à l'heure actuelle chaque fois que l'objet est modifié et enregistré.
Il semble que vous êtes juste de commencer dans Graal et je veux les aider, mais je ne veux pas l'aider tant que vous n'êtes pas d'apprendre par vous-même. Considérez votre capture d'écran ci-dessus (est-ce de la liste.spg?) et de la comparer avec la spg, je fournis. Les deux ont un formulaire de recherche en haut et les résultats sur le fond. Je peux vous dire qu'entre les informations à partir de votre autre question, ce que vous avez posté ici, et ce que j'ai posté ici vous avez toutes les pièces pour faire de votre app de faire ce que vous voulez qu'il fasse. Vous avez juste besoin de comprendre comment mettre tout cela ensemble, laissez-moi savoir si vous êtes coincé et je vais essayer de vous aider à se débloquer.
Je sais lastUpdated est une variable spéciale. Et Oui, c'est de la liste.gsp là-haut, le truc c'est que quand j'applique le filtre il me redirige vers un nouveau .gsp fichier (searchResults.spg) donc je l'ai fait sous forme de liste.gsp, le truc c'est que je ne sais pas comment faire le filtre de date... je vais télécharger une nouvelle photo de ma liste.gsp, comment le searchResults.gsp a l'air trop. Peut-être que je n'ai pas besoin de le rediriger vers un nouveau spg page, mais pour mettre à jour la liste sur la liste.spg?
Avez-vous lu le Graal de la documentation sur l'utilisation de critères de requêtes comme je l'ai mentionné dans ma réponse? Il ya un couple d'exemples spécifiques de filtrage par dates.
OriginalL'auteur proflux
Sonne comme vous voulez afficher les résultats de recherche dans une "liste" de la vue, de sorte qu'ils se présentent dans un tableau, tout comme lorsque non filtrée. Vous pouvez réutiliser ce point de vue et de passer dans les résultats filtrés comme la liste de l'instance.
Avez-vous des vues de votre Entrée de domaine objet? Si non, générer quelques échafaudages de vues avec
grails generate-view Entry
. Puis dans votre contrôleur, effectuez votre searchResults méthode de ressembler à quelque chose comme ceci:OriginalL'auteur ataylor