У меня есть пара списков флажков, между которыми я хочу переключаться.Переключение этих пунктов осуществляется с помощью JavaScript.По сути, страница генерируется, таблицы для списков флажков генерируются, и затем, нажимая кнопки, вы можете поменять местами элементы между ними.
<tr>
<th>Report Columns</th>
<td>
<div id="allFieldsContainer" style="overflow-y: scroll; height: 200px; width: auto; border: 1px solid #DDDBDB;">
<a href="#" class="list-group-item active">All Columns
<input title="toggle all" type="checkbox" class="all pull-right" /></a>
<asp:CheckBoxList ID="allFields" CssClass="list-group" runat="server">
</asp:CheckBoxList>
</div>
</td>
<td>
<div id="transferButtons">
<button class="add" onclick="return false;" style="width: 100%;">--></button>
<button class="remove" onclick="return false;" style="width: 100%;"><--</button>
</div>
</td>
<td>
<div id="selectedFieldsContainer" style="overflow-y: scroll; height: 200px; width: auto; border: 1px solid #DDDBDB;">
<a href="#" class="list-group-item active">Selected Columns
<input title="toggle all" type="checkbox" class="all pull-right" /></a>
<asp:CheckBoxList ID="selectedFields" CssClass="list-group" runat="server" >
</asp:CheckBoxList>
</div>
</td>
</tr>
Естественно, один из списков флажков должен начинаться пустым,а другой полон.Таким образом, «allFields» будет содержать все поля, которые они хотят выбрать, а затем «selectedFields» будет пустым.Проблема в том, что пустые списки флажков не генерируют html для себя.См. Сгенерированную страницу ниже.
<th>Report Columns</th>
<td>
<div id="allFieldsContainer" style="overflow-y: scroll; height: 200px; width: auto; border: 1px solid #DDDBDB;">
<a href="#" class="list-group-item active">All Columns
<input title="toggle all" type="checkbox" class="all pull-right"></a>
<table id="ContentPlaceHolder1_allFields" class="list-group">
<tbody>
<!–– Data in here is generated fine, along with the table -->
</tbody>
</table>
</div>
</td>
<td>
<div id="transferButtons">
<button class="add" onclick="return false;" style="width: 100%;">--></button>
<button class="remove" onclick="return false;" style="width: 100%;"><--</button>
</div>
</td>
<td>
<div id="selectedFieldsContainer" style="overflow-y: scroll; height: 200px; width: auto; border: 1px solid #DDDBDB;">
<a href="#" class="list-group-item active">Selected Columns
<input title="toggle all" type="checkbox" class="all pull-right"></a>
<!-- There should be a table here, there isn't one -->
<!-- This causes javascript to fail as it references a missing table -->
</div>
</td>
Я пробовал несколько вещей, таких как добавление фиктивного элемента с display:none;
, но это оставляет неудобный интервал в таблице.Я думал о том, чтобы написать какой-нибудь javascript для его удаления, как только страница загрузится, но мне было интересно, есть ли что-то более простое, что я пропускаю.