所以我正在尝试创建一个可以动态过滤联系人的搜索字段。所以我将主要结果显示在模板中(Contact / list.gsp):
<%@ page import="contactmanager.Contact" %>
<!doctype html>
<html>
<head>
<meta name="layout" content="main">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<g:set var="entityName" value="${message(code: 'contact.label', default: 'Contact')}" />
<title><g:message code="default.list.label" args="[entityName]" /></title>
</head>
<body>
<div id="list-contact" class="mainContent-contact" 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>
<div id="searchBox">
Instant Search: <g:remoteField name="q" update="searchResults" paramName="q" url="[controller:'contact', action:'search']"/>
</div>
<g:render template="searchResults"/>
<div class="pagination">
<g:paginate total="${contactInstanceTotal}" />
</div>
</div>
</body>
这是我的模板(_searchResults.gsp):
<%@ page import="contactmanager.Contact" %>
<div id = "searchResultsDiv">
<table>
<thead>
<tr>
<g:sortableColumn property="firstName" title="${message(code: 'contact.firstName.label', default: 'First Name')}" />
<g:sortableColumn property="lastName" title="${message(code: 'contact.lastName.label', default: 'Last Name')}" />
<g:sortableColumn property="phone" title="${message(code: 'contact.phone.label', default: 'Phone')}" />
<g:sortableColumn property="email" title="${message(code: 'contact.email.label', default: 'Email')}" />
<g:sortableColumn property="title" title="${message(code: 'contact.title.label', default: 'Title')}" />
<g:sortableColumn property="jobFunc" title="${message(code: 'contact.jobFunc.label', default: 'Job Func')}" />
</tr>
</thead>
<tbody>
<g:each in="${contactInstanceList}" status="i" var="contactInstance">
<g:if test="${contactInstance.isActive}">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
<td><g:link action="show" id="${contactInstance.id}">${fieldValue(bean: contactInstance, field: "firstName")}</g:link></td>
<td>${fieldValue(bean: contactInstance, field: "lastName")}</td>
<td>${fieldValue(bean: contactInstance, field: "phone")}</td>
<td>${fieldValue(bean: contactInstance, field: "email")}</td>
<td>${fieldValue(bean: contactInstance, field: "title")}</td>
<td>${fieldValue(bean: contactInstance, field: "jobFunc")}</td>
</tr>
</g:if>
</g:each>
</tbody>
</table>
</div>
所以目前,当我输入我的文字时,一切都没有发生。我在我的搜索方法中添加了一个打印输出,但根本没有被调用。这几乎就像我的remoteField停滞不活而且不活跃。
我错过了这个标签的先决条件吗?我在网上查看了官方API,但没有看到任何迹象表明这一点。 2.0.0有什么新东西吗?
我正在使用可搜索的插件在Controller中提取结果,仅供参考。
谢谢大家的帮助!
更新:所以我在main.gsp中显式添加了javascript库调用,我似乎从服务器上得到了一些回复,这是个好消息(missingPropertyException):
我不得不将插件定义添加到jQuery的库调用中(library = jquery和plugin = query)
答案 0 :(得分:0)
首先,感谢那些有建议的人。我能够弄清楚Firebug是一个有用的工具,输出指向我的库调用。
所以我现在看到我的服务器使用正确的jQuery库调用的操作。我的最后一个问题是我在remoteField的更新中引用了模板名称,而不是模板中主div的名称。
一旦我解决了这些问题,我就开始工作了。感谢您的所有建议!