NaN*_*NaN 6 html hyperlink thymeleaf
我想在html + thymeleaf中生成可点击的表行,但是我有以下问题.AFAIK它无法用链接(a-tag)包装tr元素,因为表只能直接包含tr-subtags.所以我必须包装每个td-tag的内容,但这些值是由thymeleaf动态创建的!
将每一行(将每行的每个td标记链接)链接到生成的URL的最佳方法是什么?是否有一些文本 - 前缀/后缀功能?
<tr th:each="item : ${itmes}">
<td th:text="${{item.name}}">some name</td>
<td th:text="${{item.date}}">01.03.2014</td>
<td>author</td>
<td>2</td>
<td>
<a th:href="@{/backend/items/{id}(id=${item.id})}" href="show.html"
role="button" class="btn btn-default btn-circle">
<i class="fa fa-info"></i>
</a>
<a th:href="@{/backend/items/{id}/update(id=${item.id})}" role="button" class="btn btn-warning btn-circle">
<i class="fa fa-edit"></i>
</a>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
And*_*rey 12
我不得不解决与Tymeleaf非常类似的问题,我也需要将请求参数从item传递给url,所以我解决了这样的问题:
<tr th:each="item : ${itmes}" style="cursor: pointer"
th:onclick="'javascript:rowClicked(\'' + ${item.someField} + '\');'">
...
<td>Some data</td>
...
</tr>
Run Code Online (Sandbox Code Playgroud)
然后以某种方式包括脚本:
<script>
function rowClicked(value) {
location.href = "/myurl?param=" + value;
}
</script>
Run Code Online (Sandbox Code Playgroud)
解决这个问题最简单的方法是使用 javascript 创建每一行可点击。
例如
$("#yourtablename tr").click(function() {
//do more javascript code to meet your needs
});
Run Code Online (Sandbox Code Playgroud)
就我个人而言,我会将 href 附加到其中一个 td,然后执行如下操作:
$("#yourtablename tr").click(function() {
window.location = $(this).find('td:eq(5)').attr("href");
});
Run Code Online (Sandbox Code Playgroud)
希望有帮助