[原创]用javascript实现dataGrid表头排序

javascript代码

 1<script>   
 2var curObj;   
 3var shell=1;   
 4function sortTable(L) {   
 5var start=new Date()   
 6var i;   
 7var theRows=new Array();   
 8for(i=1;i<DataGrid1.rows.length;i++) {   
 9theRows[i-1]=new Array(DataGrid1.rows[i].cells[L].innerText.toLowerCase(),DataGrid1.rows[i].outerHTML);   
10//alert(DataGrid1.rows[i].cells[L].innerText.toLowerCase());   
11//alert(DataGrid1.rows[i].outerHTML);   
12}   
13if (shell==1){   
14shell=2;   
15//window.SRC1.innerHTML=DataGrid1.rows[0].cells[3].innerText.toLowerCase()+'&nbsp;&nbsp;<img src="http://dev.csdn.net/article/images/down.gif" >'   
16switch(parseInt(L)){   
17//case 7:   
18// theRows.sort(sortRows1);   
19// break;   
20case 4,5:   
21theRows.sort(sortRows2);   
22break;   
23default:   
24theRows.sort(sortRows);   
25}   
26}   
27else{   
28shell=1;   
29//window.SRC1.innerHTML=DataGrid1.rows[0].cells[3].innerText.toLowerCase()+'&nbsp;&nbsp;<img src="http://dev.csdn.net/article/images/up.gif">'   
30switch(parseInt(L)){   
31//case 7:   
32// theRows.sort(sortRows11);   
33// break;   
34case 4,5:   
35theRows.sort(sortRows22);   
36break;   
37default:   
38theRows.sort(sortRows0);   
39}   
40}   
41var str=''   
42for(i=0;i<theRows.length;i++) {   
43str+=theRows[i][1];   
44}   
45DataGrid1.outerHTML='<table border="0" cellPadding="-1" cellSpacing="0" BorderColor="White" width="100%" bordercolor="#ffffff" name="DataGrid1" id="DataGrid1">'+DataGrid1.rows[0].outerHTML+str+'</table>'   
46curObj=null;   
47//alert(new Date()-start)   
48return ;   
49}   
50//降序-------------------   
51function sortRows(x,y) {   
52if(x[0]>y[0]) return -1;   
53else if(x[0]<y[0]) return 1;   
54else return 0;   
55}   
56function sortRows1(x,y) {   
57if(parseInt(x[0])>parseInt(y[0])) return -1;   
58else if(parseInt(x[0])<parseInt(y[0])) return 1;   
59else return 0;   
60}   
61function sortRows2(x,y) {   
62aa=ReplaceAll(x[0],"/","-")   
63bb=ReplaceAll(y[0],"/","-")   
64if(aa>bb) return -1;   
65else if(aa<bb) return 1;   
66else return 0;   
67}   
68//end 降序---------------------   
69//升序------------------ -   
70function sortRows0(x,y) {   
71if(x[0]<y[0]) return -1;   
72else if(x[0]>y[0]) return 1;   
73else return 0;   
74}   
75function sortRows11(x,y) {   
76if(parseInt(x[0])<parseInt(y[0])) return -1;   
77else if(parseInt(x[0])>parseInt(y[0])) return 1;   
78else return 0;   
79}   
80function sortRows22(x,y) {   
81aa=ReplaceAll(x[0],"/","-")   
82bb=ReplaceAll(y[0],"/","-")   
83if(aa<bb) return -1;   
84else if(aa>bb) return 1;   
85else return 0;   
86}   
87//end 升序--------------------- 
88
89function ReplaceAll(s,s1,s2){   
90//把s种的s1全部替换成s2   
91var i;   
92s=""+s;   
93i=s.indexOf(s1);   
94if(i!=-1)   
95return s.substr(0,i)+s2+ReplaceAll(s.substr(i+s1.length,s.length-i-s1.length),s1,s2);   
96else   
97return s;   
98}   
99</script>
1<script language="javascript">   
2function slt_all()   
3{   
4for(var i=2;i<=document.getElementById('DataGrid1').rows.length;i++)   
5{   
6document.getElementById('DataGrid1__ctl'+i+'_chkDel').checked = document.getElementById('chkAll').checked;   
7}   
8}   
9</script>

后台代码
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Header)
{
for(int i=0;i<e.Item.Cells.Count;i++)
{
e.Item.Cells[i].Attributes["onClick"]="javascript:sortTable("+i+")";

}
}
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus