如何让 grails 显示列表视图中域中的所有 columns/fields
How can I make grails show me all columns/fields from the domain in the list-view
我整晚都在寻找解决方案,但我找到的少数几个并不适用于我使用的较新版本的 grails。
我知道以前限制在6个字段,现在我可以看到7个。但是我需要更多的栏目,不管页面会很乱。
我也检查了f:table标签构造的代码,看不出那里有任何限制。
我不知道该怎么办,明天早上我需要准备好这个应用程序,所以我很想找到解决方案。
请帮忙..
我使用 GRAILS-3.2.3。
我可以接受任何域,只要它有超过 7 个字段,第 8 个及以上的字段将不会显示。
我使用 grails 命令:("generate-all" domain) 创建控制器和视图。没有做任何更多的事情,我就遇到了这个问题。
因此我认为我不需要带任何代码来展示——任何尝试这样做的人都会遇到同样的问题。
下面是 index.gsp 的模板 -- 谁能解释一下这里的列数限制在哪里?
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main" />
<g:set var="entityName" value="${message(code: '${propertyName}.label', default: '${className}')}" />
<title><g:message code="default.list.label" args="[entityName]" /></title>
</head>
<body>
<a href="#list-${propertyName}" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
<div class="nav" role="navigation">
<ul>
<li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
<li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
</ul>
</div>
<div id="list-${propertyName}" 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="${${propertyName}List}" />
<div class="pagination">
<g:paginate total="${${propertyName}Count ?: 0}" />
</div>
</div>
</body>
</html>
今晚我完成了最后一次试用,明天早上我会继续,因为我认为我需要对所有内容进行硬编码才能做好准备。
查看 "Anorak-Girl" 报告是一个很好的建议,但是 f:table 标签的来源没有显示任何限制 - 那么它在哪里呢?
非常感谢,但还有很多事情要做....我会回来的,晚安。
下面是_table.gsp或f:table标签的代码。
<table>
<thead>
<tr>
<g:each in="${domainProperties}" var="p" status="i">
<g:set var="propTitle">${domainClass.propertyName}.${p.name}.label</g:set>
<g:sortableColumn property="${p.name}" title="${message(code: propTitle, default: p.naturalName)}" />
</g:each>
</tr>
</thead>
<tbody>
<g:each in="${collection}" var="bean" status="i">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
<g:each in="${domainProperties}" var="p" status="j">
<g:if test="${j==0}">
<td><g:link method="GET" resource="${bean}"><f:display bean="${bean}" property="${p.name}" displayStyle="${displayStyle?:'table'}" /></g:link></td>
</g:if>
<g:else>
<td><f:display bean="${bean}" property="${p.name}" displayStyle="${displayStyle?:'table'}" /></td>
</g:else>
</g:each>
</tr>
</g:each>
</tbody>
</table>
可能是 f:table
的限制。环顾四周:
http://blog.anorakgirl.co.uk/2016/01/what-the-f-is-ftable/
Finally… how to customise the f:table tag:
Place a file called _table.gsp in /grails-app/views/templates/_fields/
要手动执行此操作:
一个 example and here 您可以手动迭代自己的 属性。
所以在你的情况下
<g:each in="${${propertyName}List}" var="myDom">
<tr><td>${myDom.id}</td><td>${myDom.name}</td><td>and so on</td></tr>
</g:each>
我整晚都在寻找解决方案,但我找到的少数几个并不适用于我使用的较新版本的 grails。
我知道以前限制在6个字段,现在我可以看到7个。但是我需要更多的栏目,不管页面会很乱。
我也检查了f:table标签构造的代码,看不出那里有任何限制。
我不知道该怎么办,明天早上我需要准备好这个应用程序,所以我很想找到解决方案。 请帮忙..
我使用 GRAILS-3.2.3。 我可以接受任何域,只要它有超过 7 个字段,第 8 个及以上的字段将不会显示。
我使用 grails 命令:("generate-all" domain) 创建控制器和视图。没有做任何更多的事情,我就遇到了这个问题。 因此我认为我不需要带任何代码来展示——任何尝试这样做的人都会遇到同样的问题。
下面是 index.gsp 的模板 -- 谁能解释一下这里的列数限制在哪里?
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main" />
<g:set var="entityName" value="${message(code: '${propertyName}.label', default: '${className}')}" />
<title><g:message code="default.list.label" args="[entityName]" /></title>
</head>
<body>
<a href="#list-${propertyName}" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
<div class="nav" role="navigation">
<ul>
<li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
<li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
</ul>
</div>
<div id="list-${propertyName}" 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="${${propertyName}List}" />
<div class="pagination">
<g:paginate total="${${propertyName}Count ?: 0}" />
</div>
</div>
</body>
</html>
今晚我完成了最后一次试用,明天早上我会继续,因为我认为我需要对所有内容进行硬编码才能做好准备。 查看 "Anorak-Girl" 报告是一个很好的建议,但是 f:table 标签的来源没有显示任何限制 - 那么它在哪里呢? 非常感谢,但还有很多事情要做....我会回来的,晚安。
下面是_table.gsp或f:table标签的代码。
<table>
<thead>
<tr>
<g:each in="${domainProperties}" var="p" status="i">
<g:set var="propTitle">${domainClass.propertyName}.${p.name}.label</g:set>
<g:sortableColumn property="${p.name}" title="${message(code: propTitle, default: p.naturalName)}" />
</g:each>
</tr>
</thead>
<tbody>
<g:each in="${collection}" var="bean" status="i">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
<g:each in="${domainProperties}" var="p" status="j">
<g:if test="${j==0}">
<td><g:link method="GET" resource="${bean}"><f:display bean="${bean}" property="${p.name}" displayStyle="${displayStyle?:'table'}" /></g:link></td>
</g:if>
<g:else>
<td><f:display bean="${bean}" property="${p.name}" displayStyle="${displayStyle?:'table'}" /></td>
</g:else>
</g:each>
</tr>
</g:each>
</tbody>
</table>
可能是 f:table
的限制。环顾四周:
http://blog.anorakgirl.co.uk/2016/01/what-the-f-is-ftable/
Finally… how to customise the f:table tag:
Place a file called _table.gsp in /grails-app/views/templates/_fields/
要手动执行此操作:
一个 example and here 您可以手动迭代自己的 属性。
所以在你的情况下
<g:each in="${${propertyName}List}" var="myDom">
<tr><td>${myDom.id}</td><td>${myDom.name}</td><td>and so on</td></tr>
</g:each>