基于css样式绑定的样式驱动式AJAX程序开发(.net实现)5
点击次数:18 次 发布日期:2008-11-26 11:07:18 作者:源代码网
|
源代码网推荐 * 下移按钮 源代码网推荐 **/ 源代码网推荐 downRow : function(e) ...{ 源代码网推荐 var that = crudbtn.that; 源代码网推荐 var linkEl = getEventTarget(e); 源代码网推荐 var td = linkEl.parentNode; 源代码网推荐 var tr = td.parentNode; 源代码网推荐 var thead = tr.parentNode; 源代码网推荐 var table = thead.parentNode; 源代码网推荐 源代码网推荐 var otr = tr; 源代码网推荐 if(tr.rowIndex == table.rows.length-1) ...{ 源代码网推荐 alert("已经是最后一行了"); 源代码网推荐 return false; 源代码网推荐 } 源代码网推荐 else ...{ 源代码网推荐 table.moveRow(tr.rowIndex,tr.rowIndex+1); 源代码网推荐 this.isOdd = true; 源代码网推荐 var rows = table.tBodies[0].rows; 源代码网推荐 源代码网推荐 // 重新隔行换色 源代码网推荐 for (var i=1;i<rows.length;i++) ...{ 源代码网推荐 if (!this.isOdd) ...{ 源代码网推荐 css.addClassToElement(rows[i], "odd"); 源代码网推荐 } else ...{ 源代码网推荐 css.removeClassFromElement(rows[i], "odd"); 源代码网推荐 } 源代码网推荐 this.isOdd = !this.isOdd; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 // 实现AJAX调用处理下移 源代码网推荐 // 下移则把pars和pars2的值反过来,后台不变 源代码网推荐 var pars = "pars2="; 源代码网推荐 for(h=0;h<tr.cells.length;h++) ...{ 源代码网推荐 if(!css.elementHasClass(tr.cells[h],"editbtn")&&!css.elementHasClass(tr.cells[h],"delbtn") 源代码网推荐 &&!css.elementHasClass(tr.cells[h],"updownbtn")) ...{ 源代码网推荐 var colid = tr.cells[h].getAttribute("columnId"); 源代码网推荐 if(tr.cells[h].firstChild.value!=null) ...{ 源代码网推荐 pars += h +"^"+ tr.cells[h].firstChild.value +"|"; 源代码网推荐 } 源代码网推荐 else ...{ 源代码网推荐 pars += h +"^"+ tr.cells[h].innerText +"|"; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 var pars2 = "&pars="; 源代码网推荐 var uprow = table.rows[tr.rowIndex-1]; 源代码网推荐 for(y=0;y<uprow.cells.length;y++) ...{ 源代码网推荐 if(!css.elementHasClass(uprow.cells[y],"editbtn")&&!css.elementHasClass(uprow.cells[y],"delbtn") 源代码网推荐 &&!css.elementHasClass(uprow.cells[y],"updownbtn")) ...{ 源代码网推荐 var colid = uprow.cells[y].getAttribute("columnId"); 源代码网推荐 if(uprow.cells[y].firstChild.value!=null) ...{ 源代码网推荐 pars2 += y +"^"+ uprow.cells[y].firstChild.value +"|"; 源代码网推荐 } 源代码网推荐 else ...{ 源代码网推荐 pars2 += y +"^"+ uprow.cells[y].innerText +"|"; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 pars3 = "&command=MoveUpDown&callback=afterUpdate&table="+table.id; 源代码网推荐 new Ajax.Updater("result","Dispatcher.ajax?"+pars+pars2+pars3,...{evalScripts: true}); 源代码网推荐 } 源代码网推荐 源代码网推荐 } 源代码网推荐 function crudbtnInit() ...{ 源代码网推荐 crudbtn.init(); 源代码网推荐 } 源代码网推荐 // 回调: 处理结束后的反映 源代码网推荐 afterUpdate = function(e) ...{ 源代码网推荐 if(e == "true") ...{ 源代码网推荐 源代码网推荐 } 源代码网推荐 else if(e == "false") ...{ 源代码网推荐 alert("您的操作失败了,请重新尝试"); 源代码网推荐 window.location.reload(); 源代码网推荐 } 源代码网推荐 else if(e == "repeated") ...{ 源代码网推荐 alert("您写入了重复的信息!请重新输入"); 源代码网推荐 window.location.reload(); 源代码网推荐 } 源代码网推荐 源代码网推荐 } 源代码网推荐 addEvent(window, "load", crudbtnInit); 源代码网推荐 源代码网推荐 后台处理同 AjaxDelRow.cs 源代码网推荐 源代码网推荐 排序样式绑定JS: 源代码网推荐 源代码网推荐 /**//* 源代码网推荐 * Written by Wangzhongyuan 源代码网推荐 * 通过绑定sort样式进行后台排序的代码 源代码网推荐 */ 源代码网推荐 var sorting = ...{ 源代码网推荐 源代码网推荐 that: false, 源代码网推荐 isOdd: false, 源代码网推荐 sortColumnIndex : -1, 源代码网推荐 lastAssignedId : 0, 源代码网推荐 newRows: -1, 源代码网推荐 lastSortedTable: -1, 源代码网推荐 源代码网推荐 /**//** 源代码网推荐 * 初始化排序器 源代码网推荐 **/ 源代码网推荐 init : function() ...{ 源代码网推荐 // 首先, 查看浏览器是否能执行此脚本(有些浏览器不能用getElementsByTagName) 源代码网推荐 if (!document.getElementsByTagName) ...{ 源代码网推荐 return; 源代码网推荐 } 源代码网推荐 源代码网推荐 this.that = this; 源代码网推荐 源代码网推荐 this.run(); 源代码网推荐 源代码网推荐 }, 源代码网推荐 源代码网推荐 /**//** 源代码网推荐 * 在文档中遍历所有table,如果table拥有sort样式,则启动排序功能 源代码网推荐 **/ 源代码网推荐 run : function() ...{ 源代码网推荐 var tables = document.getElementsByTagName("table"); 源代码网推荐 源代码网推荐 for (var i=0; i < tables.length; i++) ...{ 源代码网推荐 var thisTable = tables[i]; 源代码网推荐 源代码网推荐 if (css.elementHasClass(thisTable, "sort")) ...{ 源代码网推荐 this.makeSortable(thisTable); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 }, 源代码网推荐 源代码网推荐 /**//** 源代码网推荐 * 启动给定表的排序功能 源代码网推荐 **/ 源代码网推荐 makeSortable : function(table) ...{ 源代码网推荐 源代码网推荐 // 首先,检测该table是否有ID.如果没有就分配一个给它 源代码网推荐 if (!table.id) ...{ 源代码网推荐 table.id = "sortableTable"+this.lastAssignedId++; 源代码网推荐 } 源代码网推荐 // 判断有没有数据 源代码网推荐 if(table.rows.length<2) 源代码网推荐 return ; 源代码网推荐 // 把表格的第一行视为表头,然后下面要把它们变成可点击 源代码网推荐 var row = table.tBodies[0].rows[0]; 源代码网推荐 /**//* 结合后台的hack: 主要用于解析初始化时的排序方向. 源代码网推荐 * 由于考虑到适应自定义数据绑定模板,故越过表头,使用第二行 源代码网推荐 */ 源代码网推荐 var row2 = table.tBodies[0].rows[1]; 源代码网推荐 源代码网推荐 for (var i=0; i < row.cells.length; i++) ...{ 源代码网推荐 源代码网推荐 // 建立一个链接,并使它拥有能控制排序的onClick事件 源代码网推荐 var linkEl = createElement("a"); 源代码网推荐 linkEl.href = "#"; 源代码网推荐 linkEl.onclick = this.headingClicked; 源代码网推荐 linkEl.setAttribute("columnId", i); 源代码网推荐 linkEl.title = "点击排序"; 源代码网推荐 源代码网推荐 // 获取标题行的所有列,以便加入链接 源代码网推荐 var innerEls = row.cells[i].childNodes; 源代码网推荐 // 遍历标题行的所有列并加入链接 源代码网推荐 for (var j = 0; j < innerEls.length; j++) ...{ 源代码网推荐 // 如果标题列样式为nosort则不排序 源代码网推荐 if(!css.elementHasClass(row.cells[i], "nosort")) 源代码网推荐 linkEl.appendChild(innerEls[j]); 源代码网推荐 } 源代码网推荐 源代码网推荐 // 把新链接加到表格中 源代码网推荐 row.cells[i].appendChild(linkEl); 源代码网推荐 源代码网推荐 var spanEl = createElement("span"); 源代码网推荐 css.addClassToElement(row.cells[i], "tableSortArrow"); 源代码网推荐 源代码网推荐 // 加两个空格 源代码网推荐 // spanEl.appendChild(document.createTextNode(" ")); 源代码网推荐 row.cells[i].appendChild(spanEl); 源代码网推荐 源代码网推荐 // 为每一列判断从后台传过来的排序方向样式 源代码网推荐 if(css.elementHasClass(row2.cells[i], "sortOrderASC")) ...{ 源代码网推荐 spanEl.className = "tableSortArrow"; 源代码网推荐 spanEl.appendChild(document.createTextNode(" ↑")); 源代码网推荐 spanEl.setAttribute("sortOrder", "ASC"); 源代码网推荐 } 源代码网推荐 else if(css.elementHasClass(row2.cells[i], "sortOrderDESC")) 源代码网推荐 ...{ 源代码网推荐 spanEl.className = "tableSortArrow"; 源代码网推荐 spanEl.appendChild(document.createTextNode(" ↓")); 源代码网推荐 spanEl.setAttribute("sortOrder", "DESC"); 源代码网推荐 } 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 // 初始化隔行换色标志 源代码网推荐 this.isOdd = false; 源代码网推荐 var rows = table.tBodies[0].rows; 源代码网推荐 源代码网推荐 // 启动隔行换色 源代码网推荐 for (var i=0;i<rows.length;i++) ...{ 源代码网推荐 this.doStripe(rows[i]); 源代码网推荐 } 源代码网推荐 }, 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
