收 藏 投 稿 繁 体 RSS 
站长吧-中国站长学习与交流的网站
首 页 运 营 学 院 建 站 论 坛
Web master8.net  
 网站运营  
  欢迎在本站发布信息,在线投递稿件请点这里。编辑QQ:4908220,欢迎联系交流。
业界动态 创业故事 推广研究 策划盈利 电子商务 企业平台
  站长工具
SEO查询 Whois查询 Pr查询 域名查询 IP查询 网页编辑器
 建站服务  
  如有建站意向,请尽快联系我们,以便安排时间... 建站服务 QQ4908220 QQ:4908220
作品展示 服务范围 服务流程 服务报价 联系方式 付款方式
文章正文  » 您的当前位置: 首页 >> 学院 >> 程序开发 >> ASP.Net
用.Net实现基于CSS的AJAX开发(6)
  来源:互联网 | 时间:2007-04-15 | 浏览:   相关评论 | 报告错误 | 发布文章
【字号: | | 】 【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)
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;
master8
  • 上一篇:大型社区设计:提高用户体验的10个细节
  • 下一篇:Skype出台海外赔偿方案

  • 我要投稿  打印本文  推荐本文  加入收藏  返回顶部  关闭窗口
    搜模板(www.somoban.com) 原创网站模板交易平台
    阿里妈妈再掀疯狂采购风,网站广告位严重告急,急召天下站长
    基于PHP+MySQL的整站、模块、插件开发等或者按需求实现相应功能;
基于各PHP主流建站系统CMS,BBS,BLOG等的模板定制,完全手写代码;
整站数据迁移或备份恢复;网页代码优化、重构;整站常规SEO优化;网站技术支持;
点击了解详情...
    站长论坛
    • 验证码: