Как скрыть строки таблицы, не изменяя размер общей ширины?

Первая модификация, которую вы можете сделать, чтобы избежать дублирования, - это создание уникального ключа в таблице source в столбце resource. Таким образом, даже если вы допустите ошибку в своем коде, база данных выдаст ошибку, если вы попытаетесь сохранить дубликат регистра.

С учетом вышесказанного, нет простого способа сохранить только объекты, которых нет в базе данных. Вы либо делаете столбец resource своим основным ключом, а столбец id выбрасываете (что я не считаю хорошим выбором), либо вам нужно сделать выбор в базе данных.

Этот вопрос содержит более подробную информацию о втором варианте

Если вы хотите изменить поток приложения, один из способов решения этой проблемы - разбить сохранение прокси на два этапа. , Сначала вы регистрируете все источники, а после сохранения всех источников вы начинаете регистрировать прокси. Таким образом, вы знаете, что когда вы сохраняете прокси-сервер, на нем уже будут предварительно сохранены все источники, что делает вашу работу на этом этапе только ссылкой на существующие источники в сущности Proxy.

7
задан Nandini Venkateshan 3 January 2019 в 09:06
поделиться

4 ответа

Если Вы надеетесь сохранять общую ширину таблицы, можно проверить его до сокрытия строки и явно установить свойство стиля ширины на это значение:

table.style.width = table.clientWidth + "px";
table.rows[3].style.display = "none";

Однако это может вызвать отдельные столбцы к обратному течению при сокрытии строки. Возможный способ смягчить это путем добавления стиля к таблице:

 table {
  table-layout: fixed;
 }
8
ответ дан 6 December 2019 в 15:40
поделиться

В CSS, table-layout: fixed; на Вашей таблице дает браузеру команду соблюдать размеры, которые Вы указали для высот и ширин. Это обычно подавляет автоизменение размеров браузером, если Вы не дали подсказок относительно предпочтительных размеров Ваших строк и столбцов.

1
ответ дан 6 December 2019 в 15:40
поделиться

Для ссылки решение levik работает отлично. В моем случае, с помощью jQuery, выглядело примерно так решение:

$('#tableId').width($('#tableId').width());
2
ответ дан 6 December 2019 в 15:40
поделиться

Можно сделать это с помощью чистого HTML

<table border="1">
<colgroup>
    <col width="150px" />
    <col width="10px"  />
    <col width="220px" />
</colgroup>
<tr>
    <td valign="top">1</td>
    <td> </td>
    <td>2</td>
</tr>
<tr>
    <td>3</td>
    <td> </td>
    <td>4</td>
</tr>
</table>
0
ответ дан 6 December 2019 в 15:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: