PDA

Просмотр полной версии : Сортировка в таблице


maa
31.07.2008, 12:15
Мне нужно в таблице сделать сортировку каждого столбца как строчки без учета региста. По умолчанию сортирует как с строчки, но учитывает регистр. А мне нужно без учета регистра.
http://svby.at.tut.by/w1.jpg

<mx:DataGrid id="users_table" dataProvider="{new ArrayCollection()}" variableRowHeight="true" width="100%" x="0" backgroundAlpha="0.5" draggableColumns="true" selectable="true" top="40" bottom="0" >
<mx:columns>

<mx:DataGridColumn dataField="id" visible="false" />
<mx:DataGridColumn dataField="login" headerText="Логин" width="100" />
<mx:DataGridColumn dataField="last" headerText="Фамилия" width="120" />
<mx:DataGridColumn dataField="first" headerText="Имя" width="120" />
<mx:DataGridColumn dataField="utype" headerText="Категория" width="120" />
<mx:DataGridColumn dataField="grant_list" headerText="Список прав" />



</mx:columns>
</mx:DataGrid>


Для этого задал параметры сортировки:
var sort:Sort = new Sort();
sort.fields = [new SortField("login",true), new SortField("last",true), new SortField("first",true),new SortField("utype",true)];
users_table.dataProvider.sort = sort;

При первом щелчке по любому столбцу все срабатывает. А потом когда щелкаю по другим столбцам перестаёт сортировать без учета региста. Похоже что автоматом перетирает new Sort().

Первый щелчок по второму столбцу:
http://svby.at.tut.by/w2.jpg

Второй щелчок по второму столбцу=> Сортировка изменилась:
http://svby.at.tut.by/w3.jpg

Как по простому сделать сортировку без учета регистра?

maa
01.08.2008, 15:33
Вот код упрощённого приложения. Ну неужели нельзя сортировать без учета регистра. Привязка функции для каждого столбца мне не подходит потому что Много разных таблиц => много кода если для каждого столбца делать функцию.
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*"
horizontalAlign="center" verticalAlign="center" backgroundColor="#EdEdEd"
width="100%" height="100%" layout="absolute" creationComplete="{getInit()}">


<mx:Script>
<![CDATA[

import mx.controls.Alert;
import mx.collections.Sort;
import mx.collections.SortField;



//*********Загрузка данных*********************************
private function getInit():void
{

var sort:Sort = new Sort();
sort.fields = [new SortField("login",true), new SortField("last",true), new SortField("first",true),new SortField("utype",true)];
users_table.dataProvider.sort = sort;

};
//**********************************************************




]]>
</mx:Script>


<!-- метатег таблицы -->
<mx:DataGrid id="users_table"
variableRowHeight="true" width="100%" x="0" backgroundAlpha="0.5"
draggableColumns="true" selectable="true" top="40" bottom="0" >
<mx:columns>
<mx:DataGridColumn dataField="login" headerText="Логин" width="100" />
<mx:DataGridColumn dataField="last" headerText="Фамилия" width="120" />
<mx:DataGridColumn dataField="first" headerText="Имя" width="120" />

</mx:columns>



<mx:ArrayCollection>
<mx:Object>
<mx:login>aaa</mx:login>
<mx:last>11.99</mx:last>
<mx:first>Slanted and Enchanted</mx:first>
</mx:Object>
<mx:Object>
<mx:login>BBBB</mx:login>
<mx:last>11.99</mx:last>
<mx:first>Brighten the Corners</mx:first>
</mx:Object>
<mx:Object>
<mx:login>ccc</mx:login>
<mx:last>11.99</mx:last>
<mx:first>Brighten the Corners</mx:first>
</mx:Object>
</mx:ArrayCollection>

</mx:DataGrid>



</mx:Application>