当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 用.Net实现基于CSS的AJAX开发(2)

ASP.NET
赫赫大名的A*寻路算法(vb.net版本)
asp.net(c#)下Jmai去说明 使用与下载
[原创]完美解决Could not load file or assembly ''AjaxPro.2'' or one of its dependencies. 拒绝访问。
asp.net下gridview 批量删除的实现方法
用CSS实现图片倾斜 只支持IE
.net get set用法小结
vs 不显示行号的操作方法
ASP.NET页面进行GZIP压缩优化的几款压缩模块的使用简介及应用测试!(附源码)
ASP.Net不执行问题一解
asp.net 无限分类
让VS2008对JQuery语法的智能感知更完美一点
扩展方法ToJSON() and ParseJSON()
asp.net下PageMethods使用技巧
Linq to SQL Delete时遇到问题的解决方法
实现ASP.NET多文件上传程序代码
ASP.NET AJAX 1.0 RC开发10分钟图解
asp.net get set用法
ASP.NET下使用WScript.Shell执行命令
asp.net2.0实现邮件发送(测试成功)
Asp.net 无限级分类实例代码

ASP.NET 中的 用.Net实现基于CSS的AJAX开发(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 196 ::
收藏到网摘: n/a

       好了,完成删除,,那么所有对应这个业务的删除都可以由命名为dgBigclassmanage的某一元素通过绑定delbtn样式来执行删

  除(当然,这样不科学,不过是DEMO嘛,如果是实际你可以在QueryString里多传一个参数,在到AjaxDelRow派发后再用进行二次派发,然后以这个参数做标识就完美了)由于麻烦,,有兴趣的自己做吧。。 呵呵。
  
  这个样式只依赖TABLE元素,所以DATAGRID、DATALIST、自己做的TABLE,自定义控件只要最后生成TABLE元素的控件都可以用。
   主要提供一个思想,跟代码制作的好坏无关。在.NET里轻量地使用样式绑定,在有AJAX应用的开发中效果很棒。你也可以自己去实现一个更优秀的轻量框架了。
  
  增删改、上下移动记录样式绑定的JS:
  
   /**//**
   * Written by Wangzhongyuan
   *
   * 这是一个样式驱动的功能按钮控制脚本,样式用法如下:
   *
   * 修改按钮样式: editgtn 应用样式后即可把目标元素变为修改按钮,目标行变为修改行并出现确定、取消按钮。
   * 删除按钮样式: delbtn 应用样式后即可把目标元素变为删除按钮,点击删除则目标删除。
   * 上移下移按钮样式: updownbtn 应用样式后即可把目标元素变为上移、下移元素,目标行变为可上移和下移。
   *
   * 其他需要样式正在制作中........
   **/
  var crudbtn = ...{
   that: false,
   isOdd: false,
   lastAssignedId : 0,
   addbtnid : 0,
   newRows: -1,
   init : function() ...{
   // 首先, 查看浏览器是否能执行此脚本(有些浏览器不能用getElementsByTagName)
   if (!document.getElementsByTagName) ...{
   return;
   }
  
   this.that = this;
  
   this.run();
  
   },
   /**//**
   * 遍历document中的所有table,如果有样式crudtable,则应用此脚本
   *
   **/
   run : function() ...{
   var tables = document.getElementsByTagName("table");
  
   for (var i=0; i < tables.length; i++) ...{
   var thisTable = tables[i];
  
   if (css.elementHasClass(thisTable, 'crudtable')) ...{
   this.makecrudTable(thisTable);
   }
   }
   },
   /**//**
   * 构建控制按钮
   **/
   makecrudTable : function(table) ...{
  
   // 首先, 检测table是否有id,如果没有则创建
   if (!table.id) ...{
   table.id = 'crudTable'+this.lastAssignedId++;
   }
   // 遍历表格的数据行
   var newRows = new Array();
   // 遍历表格所有数据行
   for (var j = 0; j < table.tBodies[0].rows.length-1; j++) ...{
   // 遍历数据行所有列
   for(var k = 0;k < table.tBodies[0].rows[j+1].cells.length;k++) ...{
   // 判断是否存在删除样式,如果存在则把该单元个转化为删除按钮
   if(css.elementHasClass(table.tBodies[0].rows[j+1].cells[k], 'delbtn')) ...{
   table.tBodies[0].rows[j+1].cells[k].id = 'delbtn'+this.addbtnid ++;
   var linkEl = createElement('a');
   linkEl.href = '#';
   linkEl.onclick = this.delRow;
   linkEl.setAttribute('columnId', k);
  
   var innerEls = table.tBodies[0].rows[j+1].cells[k].childNodes;
  
   linkEl.innerText = "删除";
   table.tBodies[0].rows[j+1].cells[k].appendChild(linkEl);
   }
   // 判断是否存在修改样式,如果存在则把该单元个转化为修改按钮
   if(css.elementHasClass(table.tBodies[0].rows[j+1].cells[k], 'editbtn')) ...{
   table.tBodies[0].rows[j+1].cells[k].id = 'delbtn'+this.addbtnid ++;
   var linkEl = createElement('a');
   linkEl.href = '#';
   linkEl.onclick = this.editRow;
   linkEl.setAttribute('columnId', k);
  
   var innerEls = table.tBodies[0].rows[j+1].cells[k].childNodes;
  
   linkEl.innerText = "修改";
   table.tBodies[0].rows[j+1].cells[k].appendChild(linkEl);
   }
   // 判断是否存在上移、下移样式,如果存在则把该单元个转化为上移、下移按钮
   if(css.elementHasClass(table.tBodies[0].rows[j+1].cells[k], 'updownbtn')) ...{
   table.tBodies[0].rows[j+1].cells[k].id = 'updownbtn'+this.addbtnid ++;