2013-03-15 5 views
2

Имея некоторые проблемы, имеющие dataTables дату сортировки полей (которые имеют {"sType":"date"}. null сортировки типа (которые просто сортируют данные, как будто это обычная строка) прекрасно работает в IE8.DataTables и сортировка по дате в IE8

работа в IE 9 & 10, а также последние версии Chrome, Safari, Firefox. Это приложение не используется на мобильных клиентах, поэтому я его не тестировал.

Есть ли что-то особенное в IE8, которое мне нужно В IE8 нет ошибок на консоли JavaScript, поэтому я немного зациклен на том, где искать. Проверял документы и поиск arou nd SO, но еще не найти что-то конкретное IE8.

UPDATE:

Вот JavaScript Я использую для инициализации мой DataTable.

//sprv results table 
$("#sprv_report_table").livequery(function(){$(this).dataTable({ 
    "aoColumns": [{"sType":"date"},null,null,null,null,{"sType":"date"}], 
    "iDisplayLength": 10, 
    "sPaginationType": "full_numbers" 
});});1 

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

+0

Каково поведение IE8 при попытке сортировки по столбцу даты? Используете ли вы даты MM/dd/yyyy в американском стиле? – BLSully

+0

Он выделяет столбец, но порядок записей в таблице не изменяется. Я просто понял, что у меня есть несколько версий (1.7.4), поэтому я сначала исследую этот угол. – jefflunt

+0

Итак, получается, что даже последняя версия данных имеет ту же проблему. Я обновил свой вопрос с помощью javascript, который я использую для инициализации моего datatable. – jefflunt

ответ

1

Попробуйте что-то вроде этого:

$(this).dataTable({ 
    "aoColumns": [{ 
    mData: function(data, type) { 
     var realDate = Date.parse(data); //data will be a string 
     switch(type) { 
     case 'display': 
      return realDate.toString('MM/dd/yyyy'); //note that this line needs to be implemented by you (however you format dates) 
     default: 
      return realDate; 
     } 
    } 
    },null,null,null,null,{"sType":"date"}], 
    "iDisplayLength": 10, 
    "sPaginationType": "full_numbers" 
}); 

Смотрите ссылку на mData использовании здесь: http://datatables.net/ref

целого - рассматриваются как индекс массива для источника данных. Это значение по умолчанию используется DataTables (по возрастанию для каждого столбца).

string - читать свойство объекта из источника данных. Обратите внимание, что вы можете использовать нотацию с меткой Javascript для чтения глубоких свойств/массивов из источника данных.

null - опция sDefaultContent будет использоваться для ячейки (по умолчанию значение null), поэтому вам нужно указать желаемый контент по умолчанию - обычно пустую строку). Это может быть полезно для генерируемых столбцов, таких как столбцы редактирования/удаления.

Функция - данная функция будет выполняться всякий раз, когда DataTables необходимо установить или получить данные для ячейки в столбце. Функция принимает три параметра: {array | object} Источник данных для строки {string} Запрошенные данные типа вызова - это будет «установлено» при настройке данных или «фильтр», «отображение», «тип», 'sort' или undefined при сборе данных. Обратите внимание, что при неопределенном задании для типа DataTables рассчитывается получить необработанные данные для объекта обратно

{*} Данные для установки, когда второй параметр «установлен».

Возвращаемое значение функции не требуется, если «set» - это тип вызова, но в противном случае возврат будет использоваться для запрошенных данных.

+0

Итак, в основном возьмите дату и настройте ее с помощью рукописной функции. Я дам этот снимок, поскольку я сталкиваюсь с другими причудами, и это может быть самый прямой подход, который, надеюсь, не будет иметь разных побочных эффектов для разных браузеров. – jefflunt

+0

Ну, вот что я пытаюсь вам избежать. DataTables/будет/сортировать объект реальной даты (например, «realDate instanceof Date»). DataTables запускает функцию mData во время сортировки, поэтому она будет знать, сравнивать данные _as date_, а не как «строки, которые выглядят как даты» – BLSully

+0

А, я вижу, и я вижу различие между датами сортировки по сравнению с датами сортировки. строки, которые выглядят как даты. Простите мою текущую наивность, но мне кажется, что я мог бы заменить вышеприведенную функцию 'mData: function (data, type) {return Date.parse (data); } '- как показывают мои эксперименты, случай« отображения »не нужен. Что мне не хватает в этом подходе? – jefflunt

Смежные вопросы