Jqgrid исчезают В исчезают? - PullRequest
0 голосов
/ 02 марта 2012

Поддерживает ли jqgrid постепенное исчезновение, постепенное исчезновение, я хочу сделать его постепенным исчезновение при отображении и перезагрузке сетки, есть кто-нибудь знает, как это сделать?

Ответы [ 3 ]

0 голосов
/ 02 марта 2012

Если вы хотите получить визуальный эффект, ответ Ливиу будет хорошим. Если вы пытаетесь заблокировать взаимодействие пользователя с сеткой во время загрузки данных, я хочу использовать в своих сетках плагин BlockUI http://jquery.malsup.com/block/#element

Мой шаблон заключается в том, чтобы заблокировать сетку перед вызовом ajax, а затем разблокировать ее в методе успеха вызова ajax.

0 голосов
/ 04 марта 2012

Если вы хотите сообщить своим пользователям, что сетка загружается ... (я полностью предполагаю, что это может быть ядром того, что вы ищете ??) ... как альтернатива fadeIn / fadeOut ...

Я считаю, что сообщение "загрузка сетки" - не лучший способ информировать пользователей о загрузке сетки. Например, если в сетке много строк, сообщение может не отображаться в области просмотра, а пользователь может просматривать старые данные в сетке (во время загрузки) и не осознавать этого ... особенно если сервер обрабатывает ajax медленный или запрос медленный по любой причине. Вот кое-что, что я делаю:

Добавьте это событие в настройку jqgrid:

beforeRequest: function(){
    $('#grid tr').addClass('gridLoadingClass');
    $('#grid span').css('color','lightgray');
    $('#grid a').css('color','lightgray');
},

И добавьте такой класс где-нибудь в свой CSS:

.gridLoadingClass {color:lightgray;}

Содержимое вашей сетки теперь будет "серым" при загрузке.

0 голосов
/ 02 марта 2012

вам нужно скрыть его содержимое или всю сетку? Нет затухания в jqgrid, но вы можете использовать функцию эффекта jquery для создания этого эффекта Вы можете установить fadeOut в onBeforeRequest, а fadeIn в loadComplete

onBeforeRequest : function(){
  // is used for the whole grid
  $(this).closest('#gbox_'+this.id).fadeOut('slow');

  /*--------- OR ----------*/

  //will fade out only the table inside
  $(this).fadeOut('slow');
},

loadComplete : function(){



  $(this).closest('#gbox_'+this.id).fadeIn('slow');

  /*--------- OR ----------*/

  $(this).fadeIn('slow');

}
...