如何在 gsp 中将列表显示为多列
how to display a list into multiple columns in gsp
在我的 groovy/grails 应用程序中,我可以获得带有复选框的列表(感谢您的提示)。
但是我似乎无法得到的是如何在多列中显示列表。
这是我的 gsp 中的代码:
<ul class="columns" column-count="3">
<g:each in="${name}" var="fileName">
<g:checkBox checked="false" name="${ 'fileName'}"/> ${fileName <br>
</g:each>
</ul>
我认为 class="ul class="columns" column-count="3" 会直接 html 但我错了。我仍然得到一个(长) 列表。
使用 groovy 标签或正确的 html 代码将此列表放入 gsp 中的多列的正确方法是什么?
谢谢!
ironmantis7x
***** 更新成功!!! *****
根据我接受的答案,这是我写的代码:
<style>
.columns2 {
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2; }
</style>
<ul class="columns2">
<g:each in="${name}" var="fileName">
<g:checkBox checked="false" name="${ 'fileName'}"/> ${fileName}<br>
</g:each>
</ul>
</div>
感谢帮派!你总是帮助我扩展我的知识库,并在我喜欢做的事情上取得更大的成功,那就是编程软件!
ironmantis7x
HTML gsp 中的代码生成与您编写的 html 完全相同的代码,将按原样发送到浏览器。因此 <ul class="columns" column-count="3">
在您的浏览器中将与 <ul class="columns" column-count="3">
相同。
但是您缺少列表元素,并且只放置了一个多行(由
分隔)文本块。你可能想要这个:
<ul class="columns" column-count="3">
<g:each in="${name}" var="fileName">
<li><g:checkBox checked="false" name="${ 'fileName' }"/> ${fileName </li>
</g:each>
</ul>
或者很可能是这样(因为你没有在你的代码中关闭 }
,并且 ${ 'fileName'}
没有任何意义。你也不应该按原样放置值,它是潜在的安全漏洞):
<ul class="columns" column-count="3">
<g:each in="${name}" var="fileName">
<li><g:checkBox checked="false" name="${fileName.encodeAsHTML()}"/> ${fileName.encodeAsHTML()}</li>
</g:each>
</ul>
据我所知,column-count
是一个 CSS 属性,不是可以应用于 ul
标签的属性。您需要通过 style=
或在单独的 css 文件中定义 column-count
(首选方式,因为 SoC)。
.columns {
-webkit-column-count: 3;
-moz-column-count: 3;
column-count: 3;
}
另外,您的 ul
标签中有一个复选框输入列表。您应该有一个 li
(列表项)标签列表:
<ul class="columns">
<g:each in="${name}" var="fileName">
<li><g:checkBox checked="false" name="${ 'fileName' }"/> ${fileName} </li>
</g:each>
</ul>
在我的 groovy/grails 应用程序中,我可以获得带有复选框的列表(感谢您的提示)。
但是我似乎无法得到的是如何在多列中显示列表。
这是我的 gsp 中的代码:
<ul class="columns" column-count="3">
<g:each in="${name}" var="fileName">
<g:checkBox checked="false" name="${ 'fileName'}"/> ${fileName <br>
</g:each>
</ul>
我认为 class="ul class="columns" column-count="3" 会直接 html 但我错了。我仍然得到一个(长) 列表。
使用 groovy 标签或正确的 html 代码将此列表放入 gsp 中的多列的正确方法是什么?
谢谢!
ironmantis7x
***** 更新成功!!! *****
根据我接受的答案,这是我写的代码:
<style>
.columns2 {
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2; }
</style>
<ul class="columns2">
<g:each in="${name}" var="fileName">
<g:checkBox checked="false" name="${ 'fileName'}"/> ${fileName}<br>
</g:each>
</ul>
</div>
感谢帮派!你总是帮助我扩展我的知识库,并在我喜欢做的事情上取得更大的成功,那就是编程软件!
ironmantis7x
HTML gsp 中的代码生成与您编写的 html 完全相同的代码,将按原样发送到浏览器。因此 <ul class="columns" column-count="3">
在您的浏览器中将与 <ul class="columns" column-count="3">
相同。
但是您缺少列表元素,并且只放置了一个多行(由
分隔)文本块。你可能想要这个:
<ul class="columns" column-count="3">
<g:each in="${name}" var="fileName">
<li><g:checkBox checked="false" name="${ 'fileName' }"/> ${fileName </li>
</g:each>
</ul>
或者很可能是这样(因为你没有在你的代码中关闭 }
,并且 ${ 'fileName'}
没有任何意义。你也不应该按原样放置值,它是潜在的安全漏洞):
<ul class="columns" column-count="3">
<g:each in="${name}" var="fileName">
<li><g:checkBox checked="false" name="${fileName.encodeAsHTML()}"/> ${fileName.encodeAsHTML()}</li>
</g:each>
</ul>
据我所知,column-count
是一个 CSS 属性,不是可以应用于 ul
标签的属性。您需要通过 style=
或在单独的 css 文件中定义 column-count
(首选方式,因为 SoC)。
.columns {
-webkit-column-count: 3;
-moz-column-count: 3;
column-count: 3;
}
另外,您的 ul
标签中有一个复选框输入列表。您应该有一个 li
(列表项)标签列表:
<ul class="columns">
<g:each in="${name}" var="fileName">
<li><g:checkBox checked="false" name="${ 'fileName' }"/> ${fileName} </li>
</g:each>
</ul>