基于css样式绑定的样式驱动式AJAX程序开发(.net实现)6
点击次数:20 次 发布日期:2008-11-26 11:07:16 作者:源代码网
|
源代码网推荐 源代码网推荐 var that = sorting.that; 源代码网推荐 源代码网推荐 // 被点击的目标链接 源代码网推荐 var linkEl = getEventTarget(e); 源代码网推荐 源代码网推荐 // 直接获取td, tr, thead 和 table 源代码网推荐 var td = linkEl.parentNode; 源代码网推荐 var tr = td.parentNode; 源代码网推荐 var thead = tr.parentNode; 源代码网推荐 var table = thead.parentNode; 源代码网推荐 源代码网推荐 // 获得目标链接的columnId属性 源代码网推荐 var column = linkEl.getAttribute("columnId") || td.cellIndex; 源代码网推荐 // 找出当前列的排序方向 源代码网推荐 var arrows = css.getElementsByClass(td, "tableSortArrow", "span"); 源代码网推荐 var previousSortOrder = ""; 源代码网推荐 if (arrows.length > 0) ...{ 源代码网推荐 previousSortOrder = arrows[0].getAttribute("sortOrder"); 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 that.lastSortedTable = table.id; 源代码网推荐 源代码网推荐 // 将哪一列被排序回馈给用户 源代码网推荐 源代码网推荐 // 首先把所有的排序方向复位 源代码网推荐 var arrows = css.getElementsByClass(tr, "tableSortArrow", "span"); 源代码网推荐 for (var j = 0; j < arrows.length; j++) ...{ 源代码网推荐 var arrowParent = arrows[j].parentNode; 源代码网推荐 arrowParent.removeChild(arrows[j]); 源代码网推荐 源代码网推荐 源代码网推荐 if (arrowParent != td) ...{ 源代码网推荐 spanEl = createElement("span"); 源代码网推荐 spanEl.className = "tableSortArrow"; 源代码网推荐 // 加入两个空格 源代码网推荐 // spanEl.appendChild(document.createTextNode(" ")); 源代码网推荐 arrowParent.appendChild(spanEl); 源代码网推荐 } 源代码网推荐 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 // 现在,回馈给用户 源代码网推荐 var spanEl = createElement("span"); 源代码网推荐 spanEl.className = "tableSortArrow"; 源代码网推荐 if (null == previousSortOrder || "" == previousSortOrder || "DESC" == previousSortOrder) ...{ 源代码网推荐 spanEl.appendChild(document.createTextNode(" ↑")); 源代码网推荐 td.setAttribute("sortOrder", "ASC"); 源代码网推荐 spanEl.setAttribute("sortOrder", "ASC"); 源代码网推荐 } else ...{ 源代码网推荐 spanEl.appendChild(document.createTextNode(" ↓")); 源代码网推荐 td.setAttribute("sortOrder", "DESC"); 源代码网推荐 spanEl.setAttribute("sortOrder", "DESC"); 源代码网推荐 } 源代码网推荐 td.appendChild(spanEl); 源代码网推荐 源代码网推荐 // 以下为没有doPostBack的版本,已经取消 源代码网推荐 /**//* 源代码网推荐 if(td.firstChild.getAttribute("columnId")!=null) { 源代码网推荐 window.location = "?sortdirect="+td.getAttribute("sortOrder")+"&colid="+td.firstChild.getAttribute("columnId"); 源代码网推荐 } 源代码网推荐 else { 源代码网推荐 window.location = "?sortdirect="+td.getAttribute("sortOrder")+"&colid="+td.getAttribute("columnId"); 源代码网推荐 } 源代码网推荐 */ 源代码网推荐 源代码网推荐 // 使用__doPostBack进入后台处理 源代码网推荐 __doPostBack("Pars","sortdirect="+td.getAttribute("sortOrder")+"&colid="+td.firstChild.getAttribute("columnId")); 源代码网推荐 return false; 源代码网推荐 }, 源代码网推荐 /**//** 源代码网推荐 * 隔行换色 源代码网推荐 **/ 源代码网推荐 doStripe : function(rowItem) ...{ 源代码网推荐 if (!this.isOdd) ...{ 源代码网推荐 css.addClassToElement(rowItem, "odd"); 源代码网推荐 } else ...{ 源代码网推荐 css.removeClassFromElement(rowItem, "odd"); 源代码网推荐 } 源代码网推荐 this.isOdd = !this.isOdd; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 function sortInit() ...{ 源代码网推荐 sorting.init(); 源代码网推荐 } 源代码网推荐 源代码网推荐 addEvent(window, "load", sortInit) 源代码网推荐 源代码网推荐 后台: 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 public DataView SortBuilder(object dataobj,DataView dv) 源代码网推荐 ...{ 源代码网推荐 string req = Request.Form["__EVENTARGUMENT"]; 源代码网推荐 string p_sort = null; 源代码网推荐 string p_colid = null; 源代码网推荐 if(req!=null) 源代码网推荐 ...{ 源代码网推荐 string[] args = req.Split("&"); 源代码网推荐 foreach (string arg in args) 源代码网推荐 ...{ 源代码网推荐 string[] hash = arg.Split("="); 源代码网推荐 if(hash[0].Equals("sortdirect")) 源代码网推荐 ...{ 源代码网推荐 p_sort = hash[1]; 源代码网推荐 } 源代码网推荐 else if(hash[0].Equals("colid")) 源代码网推荐 ...{ 源代码网推荐 p_colid = hash[1]; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 if(p_sort!=null && p_colid!=null && !p_colid.Equals("null")) 源代码网推荐 ...{ 源代码网推荐 SortDirect = p_sort; 源代码网推荐 int iColid = Int32.Parse(p_colid); 源代码网推荐 if(dataobj is DataGrid) 源代码网推荐 ...{ 源代码网推荐 foreach (DataGridColumn dc in ((DataGrid)dataobj).Columns) 源代码网推荐 ...{ 源代码网推荐 if(((Style)(Style)dc.ItemStyle).CssClass.IndexOf("sortOrder")!=-1) 源代码网推荐 ...{ 源代码网推荐 ((Style)(Style)dc.ItemStyle).CssClass = ""; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 ((Style)(((DataGrid)dataobj).Columns[iColid].ItemStyle)).CssClass += " sortOrder" + SortDirect; 源代码网推荐 DataGrid grid = (DataGrid)dataobj; 源代码网推荐 DataGridColumn dgc = grid.Columns[iColid]; 源代码网推荐 BoundColumn bc = (BoundColumn)dgc; 源代码网推荐 string df = bc.DataField; 源代码网推荐 dv.Sort = df + " " + SortDirect; 源代码网推荐 } 源代码网推荐 if(dataobj is DataList) 源代码网推荐 ...{ 源代码网推荐 DataList dl = (DataList)dataobj; 源代码网推荐 ((Style)dl.ItemStyle).CssClass += " sortOrder" + SortDirect; 源代码网推荐 dv.Sort = dl.DataKeyField + " " + SortDirect; 源代码网推荐 } 源代码网推荐 // 自定义控件,,,可以自己实现一个 源代码网推荐 if(dataobj is table) 源代码网推荐 ...{ 源代码网推荐 table tbl = (table)dataobj; 源代码网推荐 tbl.DataSource = ViewLogic.Data.DataSourceFactory.Create(dv.Table); 源代码网推荐 IList list = (tbl).ColumnList; 源代码网推荐 tbl.ColName = list[iColid].ToString(); 源代码网推荐 tbl.SortDriect = SortDirect; 源代码网推荐 dv.Sort = list[iColid] + " " + SortDirect; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 return dv; 源代码网推荐 } 源代码网推荐 源代码网推荐 样式绑定的用法如下 源代码网推荐 源代码网推荐 例如,排序样式绑定的用法: 源代码网推荐 源代码网推荐 前台: 引用JS,并绑定样式 sort 源代码网推荐 后台: 源代码网推荐 DataSet ds = 获取数据源ds 源代码网推荐 DataView dv = ds.Tables[0].DefaultView; 源代码网推荐 dv= SortBuilder(控件,dv) ; 源代码网推荐 控件.DataSource = newdv; 源代码网推荐 源代码网推荐 详情请见:http://bbs.goufang.com/js.rar 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
