2013-09-24 2 views
0

Я использую Enhanced grid, и недавно я обнаружил, что при сортировке любого столбца (путем нажатия на имя столбца заголовка) сортировка ломается и не работает с полными результатами, если результаты этот столбец имеет специальные символы, такие как "|,*/\-& и т. д. ... Любая помощь будет оценена по достоинству.Улучшенная сортировка сетки Не работает должным образом

Вот мой код:

<body> 
    <div style="width: 100%; height: 400px;"> 
     <div dojoType="dojo.data.ItemFileReadStore" 
      jsId="appsStoreForGrid" data="storeData" typeMap="_typeMap"> 
     </div> 

     <div id="grid" data-dojo-type="dojox.grid.EnhancedGrid" 
      data-dojo-props="store:appsStoreForGrid, structure:'layoutApps', 
      errorMessage:'No Data Found', 
      plugins: { 
       filter: { closeFilterbarButton: true, ruleCount: 5 }, 
       pagination: { pageSizes: ['5', '25', '50', '100'], 
        description: true, sizeSwitch: true, pageStepper: true, 
        gotoButton: true, maxPageStep: 8, position: 'top'}}"> 
     </div> 
    </div> 
</body> 
+0

Пожалуйста, напишите, что вы написали до сих пор. – Bucket

+0

Код: -

user2708694

+0

Каких ошибок вы получаете? – Bucket

ответ

1

Вопрос был из-за SPACES перед содержимым, которое вызывало плохую сортировку. Эти пробелы не были видны в браузере, но при просмотре источника страницы я узнал об этом. Наконец, TRIM пробелы только в Db, и проблема теперь решена. Благодарю.

0

Верьте или нет, Ваш вид на самом деле работает правильно. Строки в вашей сетке сортируются на основе строкового упорядочения, которое зависит от значений строк, заданных ASCII codes. Итак, давайте взглянем на часть вашего первого изображения:

TEST Email to Check references 
Test 1 |ID:1141| 

| в этом случае имеет очень мало общего с упорядочением. Когда мы переводим эти строки в их ASCII-коды (в десятичной системе), мы получим это (усекается до 10 символов):

T E S T  E m a i l 
84 69 83 84 32 69 109 97 105 108 
    |         <-- 69 < 101, so this is correct 
84 101 115 116 32 49 32 124 73 68 
T e s t  1  | I D 

Таким образом, вы можете увидеть, как функция сортировки организует эти строки на основе значения. Кроме того, в картине # 2:

*** UPDATE-COMPLETED *** 
**UPDATE-CMPLETE** 
9-20-13-Loads and Mtys 

Для этого нужно всего лишь взглянуть на первые несколько символов: ***, **U и 9-20, которые имеют значения 42 42 42, 42 42 85 и 57 45 50 соответственно; поэтому еще раз они в порядке.

Если вы хотите игнорировать специальные символы, лучше всего не допускать их в вашем datagrid в целом, поэтому вам нужно будет их разобрать.

+0

Извините, но я не согласен с вами. Если вы видите третье изображение, вы увидите, что «A P P O I N T M E N T ..» подходит после «9/20/2013 ..». Но строка «НАЗНАЧЕНИЕ» должна была начаться с начала, а остальные строки имеют «А» в начале, а не после отметки «9/20/2013». Вот где он искажен. Пожалуйста, дайте мне знать, смогу ли я это сделать. – user2708694

+0

Сортировка по-прежнему технически корректна - '' A'' = '65'>' 57' = ''9''. – Bucket

+0

Думаю, вы не поняли. Дай мне попробовать снова. После сортировки столбца темы начальные строки в порядке. Они начинаются с Apple, затем с Мальчиком, потом с Колумбусом и т. Д.. ТОГДА Приходит ряд, имеющий ТЕСТ-ЭЛЕКТРОННУЮ ПОЧТУ. Его штраф до сих пор ... ТОГДА ПРИХОДИТ ВАШ ***, то 9-20-13 .... THEN AGAIN COMES ROW, ИМЕЮЩИЙ «НАЗНАЧЕНИЕ» ... затем строку, имеющую «BASEBALL» ... затем «CHALLENGE» .. и т. Д. Вам не кажется, что строка «НАЗНАЧЕНИЕ» должна была после «APPlE». .... И БЕЙСБОЛЛ должен был прийти после МАЛЬЧИКА ... но его сломанный между ними номерами и специальными символами. НАДЕЖДА Я ЕСМЬ В ЭТОТ ВРЕМЯ .. Извините, если нет. – user2708694

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