我有問題與jqGrid,當我想排序卡隆字符(š,ž,č,ć,đ,...,)。 我使用「caronCharacters」函數來代替那些caron與代碼... caronCharacters(data, sortableColumns[sortIndex], false);
當caronCharacters(data, sortableColumns[sortIndex], false);
排隊是好的..但在這種情況下,我們沒有字裏面的卡隆,但一些「zxxx」代碼,而是...但是當我希望將這段代碼回卡隆字符的話,我有相同的結果,如果我沒有做任何事情...我假設觸發「reloadGrid」種種數據再次...希望你理解我......jqGrid caron sort
$('#sortAZ,#sortZA').click(function(){
var order='asc';
if ($(this).attr('id')=='sortZA'){
var order='desc';
}
if (sortIndex==''){
return;
}
// change caron character into some code..like zž or zxxx
var data = $('#gridTable').jqGrid('getGridParam').data;
caronCharacters(data, sortableColumns[sortIndex], true);
jQuery("#gridTable").jqGrid('setGridParam',{sortname:sortableColumns[sortIndex],sortorder:order});
// change code back to caron...if next line is in comment it works sorting, but no carons...
caronCharacters(data, sortableColumns[sortIndex], false);
jQuery("#gridTable").trigger('reloadGrid');
$('#dropMenuFilter').hide();
function caronCharacters(data, sortableColumn, direction){
if(direction){
for(var i in data){
data[i][sortableColumn] = replaceCaron(data[i][sortableColumn]);
$('#gridTable').jqGrid('getLocalRow', i)[sortableColumn] = data[i][sortableColumn];
}
}
else{
for(var i in data){
data[i][sortableColumn] = replaceCaronCode(data[i][sortableColumn]);
$('#gridTable').jqGrid('getLocalRow', i)[sortableColumn] = data[i][sortableColumn];
}
}
}
});
function replaceCaron(word){
word = word.replace(/Č/g, "Cxxx");
word = word.replace(/Ć/g, "Cxxx");
word = word.replace(/Đ/g, "Dxxx");
word = word.replace(/Š/g, "Sxxx");
word = word.replace(/Ž/g, "Zxxx");
word = word.replace(/č/g, "cxxx");
word = word.replace(/ć/g, "cxxx");
word = word.replace(/đ/g, "dxxx");
word = word.replace(/š/g, "sxxx");
word = word.replace(/ž/g, "zxxx");
return word;
}
function replaceCaronCode(word){
word = word.replace(/Cxxx/g, "Č");
word = word.replace(/Cxxx/g, "Ć");
word = word.replace(/Dxxx/g, "Đ");
word = word.replace(/Sxxx/g, "Š");
word = word.replace(/Zxxx/g, "Ž");
word = word.replace(/cxxx/g, "č");
word = word.replace(/cxxx/g, "ć");
word = word.replace(/dxxx/g, "đ");
word = word.replace(/sxxx/g, "š");
word = word.replace(/zxxx/g, "ž");
return word;
}
你是否對'datatype:「local」'使用jqGrid,或者在'loadonce:true'中使用某種遠程數據類型(「json」或「xml」)?什麼是'#sortAZ'和'#sortZA''?通過點擊列標題進行標準排序是否與您的自定義排序規則相對應不是更好? – Oleg
我使用遠程數據類型json。 是的,可能是更好的,但我不能使用souch排序...它不在設計中,我必須實現... – Clem
如果您使用'datatype:「json」'*沒有*'loadonce:true',那麼所有的排序將在服務器端*上完成*。因此,不需要編寫任何其他JavaScript代碼,只需更改服務器代碼或在相應的SQL語句的ORDER BY部分中使用COLLATE部分(請參閱[here](http://msdn.microsoft.com/zh-cn/美國/庫/ ms188385.aspx#整理)例如) – Oleg