gpt4 book ai didi

Grails:动态过滤 Grails 表中的数据

转载 作者:行者123 更新时间:2023-12-02 02:32:44 25 4
gpt4 key购买 nike

我有一张 table ,里面有一系列的事件,我的类(class)名称是 Entry。

这是我的 table 的照片

是西类牙语,但基本原理是一样的,所以这应该不是问题。(过滤器 HTML 代码还不是一团糟,但它可以工作)

下面是我查找条目时得到的结果。

现在我的问题是我需要将结果显示/过滤到 pic1 的同一个表中,所以它基本上就像应用过滤器的表更新。

如果您需要更多信息,请点击我的旧问题的链接。感谢 proflux!

I have a bunch of data and I need a data filter using Grails

大部分搜索代码都在那里,

任何帮助将不胜感激!

更新:

不过我在过滤日期时遇到问题...我有两个日期...一个是事件将要发生的日期,另一个是 lastUpdated,我认为这是 grails 的关键字,表示您最后一次修改事件。非常感谢与过滤日期相关的任何帮助。

我需要在第一个表格上显示从今天开始的所有内容。如果我想找到过去的东西,我应该能够使用过滤器来找到它。

关于如何做到这一点有什么想法吗?

更新:

这是我的 list.gsp

这是我的 searchResults.gsp,其中应用了“Ruta”一词的过滤器

所以基本上一切看起来都很漂亮,但日期过滤器不起作用。

这是 Controller 中没有过滤日期的代码

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])
}

正在过滤单词而不是日期

proyectoRuta 将是标题,fechaCambio 将是第一列中显示的日期。我还没有尝试过滤 lastUpdated 日期。

更新:

好的,这是我的 Controller :因为有很多代码,所以我只会发布重要的定义

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])
}
}

这是 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: '&nbsp;&nbsp;&nbsp;')}" /></span>
<span class="simple"><g:actionSubmit class="eliminar" action="delete" value="${message(code: 'default.button.eliminar.label', default: '&nbsp;&nbsp;&nbsp;')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Esta seguro que desea Eliminar?')}');" /></span>
</g:form>
</td>
</tr>
</g:each>
</tbody>

最佳答案

尝试对结果和搜索条件使用相同的 gsp...

<html>
<body>
<h1>Search Criteria</h1>

<g:form controller="entry" action="searchResults">
Title: <g:textField name="title" value="${title}" />
Date: <g:datePicker name="startTime" value="${startTime}" precision="day" />
<g:submitButton name="submit" value="Search" />
</g:form>
<g:if test="${results}">
<h1>Search Results</h1>
<table>
<tr>
<th>Title</th>
<th>Start Date</th>
</tr>
<g:each in="${results}">
<tr>
<td>${it.title}</td>
<td>${it.startTime}</td>
</tr>
</g:each>
</table>
</g:if>
</body>
</html>

然后对于您的 Controller 关闭:

def search = {
render(view:'search')
}

def searchResults = {
def entryCriteria = Entry.createCriteria()
def results = entryCriteria.list {
if(params?.title) {
ilike("title", "%${params.title}%")
}
}
render(view:'search', model:['results':results,
'title':params?.title,
'startTime':params?.startTime])
}

这是我写得非常快的一个快速演示,但来 self 在另一个问题上给你的信息和 Grails Reference Documentation关于使用条件查询,您应该能够弄明白。如果您遇到任何问题,请告诉我。

更新:

为您的 between 标准尝试这样的事情:

def entryCriteria = Entry.createCriteria()
def results = entryCriteria.list {
if(params?.title) {
ilike("title", "%${params.title}%")
}
if(params?.day) {
between("day", params.day, params.day+1)
}
}

关于Grails:动态过滤 Grails 表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3105021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com