【发布时间】:2015-05-21 14:07:37
【问题描述】:
我有一个 ASP.NET MVC 站点,并且在视图中有一个 HTML 表。根据示例 html 代码,我有时会在单元格内嵌套表格,但在您完成问题之前可以忽略它。
<table id="mainTable">
<thead>
<tr>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>data</td>
<td>data</td>
<td>data</td>
</tr>
<tr>
<td>data</td>
<td>
<table class="nestedTable">
<tr><th>Col 1</th><th>Col 3</th></tr>
<tr>
<td>nested data</td><td>nested data 1</td>
</tr>
</table>
</td>
<td>data</td>
</tr>
</tbody>
</table>
我现在想使用这个jQuery multiselect plugin 来允许用户选择他们想要的列的顺序以及显示/隐藏某些列所以我正在创建一个看起来像这样的多选:
<select id="cols" class="multiselect" multiple="multiple" name="cols[]">
<option value="Col1">Col1</option>
<option value="Col2">Col2</option>
<option value="Col3">Col3</option>
</select>
允许用户选择订单,然后我暂时将这些数据存储在本地存储中。所以我要存储的只是一个字符串数组,它们代表“列的可见顺序”,用于设置多选选择器。这很好用,我可以保留这个数组或“有序列名”。
我的问题是获取此字符串数组并更新 HTML 表以反映此列排序和列可见性的最佳方法是什么?
我知道有更大的 html 表格网格框架具有此功能,但在这种情况下,我需要坚持使用手工编码的 html 表格。
更新:
@Rick Hitchcock 下面的回答让我完成了 90% 的工作,但我意识到有一个未解决的问题使我的问题有点复杂。在某些情况下,我在主表中有一个嵌套表。我已经更新了问题以包括这种情况。 我不希望列选择器代码影响嵌套表,所以我正在寻找一种方法让代码影响主表。
【问题讨论】:
-
你也可以看到这个很棒的插件:tablesorter.com/docs
标签: javascript jquery html html-table multi-select