Скрыть строку в таблице и отобразить ее снова? - PullRequest
0 голосов
/ 21 сентября 2010

Я использую цикл foreach внутри страницы ASP.NET MVC View.Для каждого элемента коллекции, над которым работает foreach, я создаю две строки - одну для отображения, другую для редактирования.Я хочу скрыть строку редактирования и отображать ее позже только в зависимости от действий пользователя.

Если я скрываю строки редактирования с помощью display: none, то метод jQuery show() не может снова отобразить его - он не работает,Если я спрячу это, как это,

// I put this inside the foreach loop
<script type="text/javascript">
$("#edititem_" + <%: item.Id %>).hide();
</script>

функция jQuery show() может отобразить ее позже, но страница не будет проверена, потому что это внутри тега <tbody> (здесь я перечисляю свою коллекцию и создаю <tr> s)

Я хочу иметь возможность отображать / скрывать строки редактирования по требованию и при этом иметь действительную страницу XHTML.

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 21 сентября 2010

Для того, чтобы иметь также постепенную деградацию, вы можете придерживаться сокрытия, сделанного с помощью jQuery, просто присвоите редактируемым строкам <tr> класс, например <tr class="edit">, а затем спрячьте все эти сразу с помощью jQuery вне таблицы, как это:

<script type="text/javascript">
  $(function() {
    $("tr.edit").hide();
  });
</script>

Этот подход, вместо того, чтобы скрывать их с помощью CSS, более удобен для тех, у кого отключен JS. Если у вас может быть такая аудитория пользователей, воспользуйтесь этим .hide() подход.

0 голосов
/ 21 сентября 2010

используйте файл CSS и добавьте Class к строке редактирования, а другой класс к отображаемой строке.

если вы напишите

.editRows {
  display:none;
}

в файле CSS работает .show() jquery.

или вы могли бы сделать

$(".editRows").hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...