当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  基于css样式绑定的样式驱动式AJAX程序开发(.net实现)6

 基于css样式绑定的样式驱动式AJAX程序开发(.net实现)6

点击次数:20 次 发布日期:2008-11-26 11:07:16 作者:源代码网
源代码网推荐      headingClicked: function(e) ...{
源代码网推荐  
源代码网推荐   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)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华