大家用DataList是怎样各列排序的

lengyubing_1983 2005-07-22 09:21:16
我是这样做的,
存储过程用的是以前一位高手写的通用的分页存储过程
该存储过程的输入参数是这样的
CREATE PROCEDURE sp_page
@tb varchar(50), --表名
@col varchar(50), --按该列来进行分页
@coltype int, --@col列的类型,0-数字类型,1-字符类型,2-日期时间类型
@orderby bit, --排序,0-顺序,1-倒序
@collist varchar(800),--要查询出的字段列表,*表示全部字段
@pagesize int, --每页记录数
@page int, --指定页
@condition varchar(800),--查询条件
AS

.............存储过程以下部分省略

我在DataList里的各列列名是LinkButton型的
点击一列名对该列排序然后DataList数据重新邦定

我用ViewState保存列名,列的类型,排序,和指定页

这是其中的一列处理函数
//点击会员名排序时处理的事件
public void Name_OnClick(object sender,System.EventArgs e)
{
if((string)ViewState["Col"]=="UserName")//如果先前是在会员名列上排序的,则调换排序
{
if((int)ViewState["Flag"]==0)//若先前在会员名列上是按顺序排的
{
ViewState["Flag"] = 1; //则从顺序换成倒序
}
else
{
ViewState["Flage"] = 0; //否则从倒序换成顺序
}
}
else //否则从其他列排序换成会员列排序
{
ViewState["Col"] = "UserName";//把列名换成UserName
ViewState["ColType"] = 1; //列的类型,0-数字类型,1-字符类型,2-日期时间类型
ViewState["Flag"] = 0; //排序,0-顺序,1-倒序

}
ViewState["CurrentPage"] = 1; //第一页
DataBind((int)ViewState["CurrentPage"],(string)ViewState["Col"],(int)ViewState["ColType"],(int)ViewState["Flag"]); //给Datalist邦定数据
}

这样做有个问题,就是在一列中连点三次后排序就不变换了,换点其它列又可以,但同样连点三次后又不变了,每一列都是这样
这是什么原因呢

你们是怎么做DataList中排序的呢
...全文
147 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
evlon 2005-07-23
  • 打赏
  • 举报
回复
看不出哪里有问题

试试这个
===================================
public void Name_OnClick(object sender,System.EventArgs e)
{
if((string)ViewState["Col"]=="UserName")//如果先前是在会员名列上排序的,则调换排序
{
(int)ViewState["Flag"] = 1 - (int)ViewState["Flag"];
}
else//否则从其他列排序换成会员列排序
{
ViewState["Col"] = "UserName";//把列名换成UserName
ViewState["ColType"] = 1; //列的类型,0-数字类型,1-字符类型,2-日期时间类型
ViewState["Flag"] = 0; //排序,0-顺序,1-倒序

}

ViewState["CurrentPage"] = 1; //第一页
DataBind((int)ViewState["CurrentPage"],(string)ViewState["Col"],(int)ViewState["ColType"],(int)ViewState["Flag"]); //给Datalist邦定数据
}

============================

楼主调试一下呀?
lengyubing_1983 2005-07-23
  • 打赏
  • 举报
回复
up
lengyubing_1983 2005-07-23
  • 打赏
  • 举报
回复
帮帮小弟吧
liym15 2005-07-22
  • 打赏
  • 举报
回复
UP
第一部分 构建ASP.NET页面 第1章 ASP.NET Framework概览 2 1.1 ASP.NET和.NET Framework 5 1.1.1 框架类库 5 1.1.2 公共语言运行库 9 1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解和处理控件事件 12 1.2.4 视图状态 17 1.3 ASP.NET页面 20 1.3.1 动态编译 20 1.3.2 控件树 23 1.3.3 使用代码隐藏页面 24 1.3.4 处理页面事件 27 1.3.5 使用Page.IsPostBack属性 29 1.3.6 调试和跟踪ASP.NET页面 30 1.3.7 跟踪页面执行 33 1.4 安装ASP.NET Framework 35 1.5 小结 37 第2章 使用标准控件 38 2.1 显示信息 38 2.1.1 使用Label控件 38 2.1.2 使用Literal控件 42 2.2 接收用户输入 44 2.2.1 使用TextBox控件 44 2.2.2 使用CheckBox控件 50 2.2.3 使用RadioButton控件 52 2.3 提交表单数据 55 2.3.1 使用Button控件 55 2.3.2 使用LinkButton控件 57 2.3.3 使用ImageButton控件 59 2.3.4 Button控件使用客户端脚本 62 2.3.5 执行跨页面发送 64 2.3.6 指定默认按钮 67 2.3.7 处理Command事件 68 2.4 显示图像 70 2.4.1 使用Image控件 70 2.4.2 使用ImageMap控件 71 2.5 使用Panel控件 75 2.6 使用HyperLink控件 79 2.7 小结 81 第3章 使用验证控件 82 3.1 验证控件概述 82 3.1.1 验证控件与JavaScript 85 3.1.2 使用Page.IsValid 85 3.1.3 设置Display属性 86 3.1.4 突出显示验证错误 86 3.1.5 使用验证组 90 3.1.6 禁用验证 93 3.2 使用RequiredFieldValidator控件 94 3.3 使用RangeValidator控件 97 3.4 使用CompareValidator控件 99 3.5 使用RegularExpressionValidator控件 103 3.6 使用CustomValidator控件 105 3.7 使用ValidationSummary控件 111 3.8 创建自定义验证控件 114 3.8.1 创建LengthValidator控件 115 3.8.2 创建AjaxValidator控件 117 3.9 小结 121 第4章 使用Rich控件 122 4.1 接收上传文件 122 4.1.1 把文件保存到文件系统 123 4.1.2 把文件保存到数据库 125 4.1.3 上传大文件 128 4.2 显示日历 133 4.2.1 创建弹出式日期选择器 135 4.2.2 根据数据库表呈现日历 137 4.3 显示广告 141 4.3.1 在XML文件中保存广告 141 4.3.2 在数据库表中存储广告 144 4.3.3 跟踪显示和转到 145 4.4 显示不同的页面视图 149 4.4.1 显示选项卡式页面视图 149 4.4.2 显示多部分表单 152 4.5 显示向导 153 4.6 小结 157 第二部分 设计ASP.NET网站 第5章 使用母版页设计网站 160 5.1 创建母版页 160 5.1.1 创建默认内容 163 5.1.2 嵌套母版页 166 5.1.3 在母版页中使用图片和超链接 170 5.1.4 在Web配置文件中注册母版页 172 5.2 修改母版页内容 172 5.2.1 使用Title属性 173 5.
导言   在之前的28篇教程的例子里,如果我们需要显示某个数据源的多条记录,我们使用GridView .GridView 的一行表示数据源的一条记录,列表示一个字段.虽然GridView 用来显示数据,分页,排序,编辑,删除非常的方便,但是有点臃肿.而且GridView 结构的标记是固定的—它包含一个带有和的HTML 标记.   为了在显示多条记录时,有更好的自定义功能,ASP.NET 2.0提供了DataList 和Repeater (ASP.NET 1.x版本里也有 ).DataList 和Repeater 使用模板来显示内容,而不是象在GridView里那样

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧