gpt4 book ai didi

grails - 如何使用g:select标记的onChange事件动态更改 View 的一部分?

转载 作者:行者123 更新时间:2023-12-02 15:42:16 26 4
gpt4 key购买 nike

在从DropDownMenu中选择后(在grails 3.3.9中),我很难弄清如何用新数据重新加载 View 的部分。

我试图在grails中使用按钮的相同约定,这很简单:

<g:select class="btn bg-primary" action="filterByCommittee" controller="management"
from="${Committee.list()}" optionKey="id" optionValue="${name}"
name="committees" value="${committees}" noSelection="${['null':'Select..']}"/>

上面的代码表示(AFAIK)我想使用params.committees(字段名称)触发驻留在 Controller (管理)中的操作(filterByCommittee)。提及的操作将过滤所选委员会的购买(向用户显示的列表)。

任何帮助将不胜感激!

一些相关的代码:
class ManagementController {

PurchaseService purchaseService
CommitteeService committeeService

def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
List<Purchase> purchaseList = Purchase.findAllByAccountantApprovalInList(Approval.findAllByApproved(true))
}
respond purchaseList, model:[purchaseCount: purchaseService.count()]
}

def filterByCommittee() {
Committee selectedCommittee = Committee.findByName(params.committees)
List<User> userList = User.findAllByCommittee(selectedCommittee)
List<Purchase> purchaseList = Purchase.findAllByUserInList(userList)
respond purchaseList, model:[purchaseCount: purchaseService.count()]
}
}
class Committee {

String name

static hasMany = [users:User, summaries:Summary]

static constraints = {
users(nullable: true)
summaries(nullable: true)
}

@Override
public String toString() {
return name
}
}

<!DOCTYPE html>
<!--<%@ page import="attainrvtwo.Committee" contentType="text/html;charset=UTF-8" %>-->
<html xmlns:g="http://www.w3.org/1999/html">
<body>
<a href="#list-purchase" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content&hellip;"/></a>
<div class="nav" role="navigation">
<ul>
<li><g:select class="btn bg-primary" action="filterByCommittee" controller="management" from="${Committee.list()}" optionKey="id" optionValue="${name}" name="committees" value="${committees}" noSelection="${['null':'Select..']}"/></li>
</ul>
</div>
<div id="list-purchase" class="content scaffold-list" role="main">
<h1><g:message code="default.list.label" args="[entityName]" /></h1>
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<f:table collection="${purchaseList}" />

<div class="pagination">
<g:paginate total="${purchaseCount ?: 0}" />
</div>
</div>
</body>
</html>

最佳答案

在gsp文件中,选择时(用相应的值填充“”):

<g:select id="" name="" value="" from='${}' optionKey="id"
onchange="optionChanged(this.value);" >
</g:select>
<div id="tabla" style="display:block;"></div>

在同一个gsp文件中:
<script>
function optionChanged(committeeId) {
<g:remoteFunction controller="management" action="filterByCommittee"
update="tabla" params="'commId='+committeeId"/>
}
</script>

在另一个gsp文件中,名称为=“filterByCommittee.gsp”:
Code to display

在 Controller 中,将id参数添加到函数中:
def filterByCommittee(commId)

关于grails - 如何使用g:select标记的onChange事件动态更改 View 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55894327/

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