本文介绍了一个使用ASP.NET实现的GridView自动排序功能。通过设置GridView的排序属性,并在排序事件中更新排序方向,实现了数据的升序和降序排列。此外,还提供了一个简单的数据填充示例。
摘要生成于
,由 DeepSeek-R1 满血版支持,
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
// 设定初始排序参数值
// 错误的属性设置方法:SortExpression、SortDirection均是GridView只读属性,无法直接赋值。
//this.GridView1.SortExpression="id";
//this.GridView1.SortDirection="ASC";
// 正确的属性设置方法
this.GridView1.Attributes.Add("SortExpression", "id");
this.GridView1.Attributes.Add("SortDirection", "ASC");
// 绑定数据源到GridView
this.BindGridView();
/// <summary>
/// GridView排序事件
/// </summary>
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
// 从事件参数获取排序数据列
string sortExpression=e.SortExpression.ToString();
// 假定为排序方向为“顺序”
string sortDirection="ASC";
// “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
if (sortExpression==this.GridView1.Attributes["SortExpression"])
//获得下一次的排序状态
sortDirection=(this.GridView1.Attributes["SortDirection"].ToString()==sortDirection ? "DESC" : "ASC");
// 重新设定GridView排序数据列及排序方向
this.GridView1.Attributes["SortExpression"]=sortExpression;
this.GridView1.Attributes["SortDirection"]=sortDirection;
this.BindGridView();
/// <summary>
/// 绑定到GridView
/// </summary>
private void BindGridView()
// 获取GridView排序数据列及排序方向
string sortExpression=this.GridView1.Attributes["SortExpression"];
string sortDirection=this.GridView1.Attributes["SortDirection"];
// 调用业务数据获取方法
DataTable dtBind=this.getDB();
// 根据GridView排序数据列及排序方向设置显示的默认数据视图
if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
dtBind.DefaultView.Sort=string.Format("{0} {1}", sortExpression, sortDirection);
// GridView绑定并显示数据
this.GridView1.DataSource=dtBind;
this.GridView1.DataBind();
/// <summary>
/// 获取数据源的方法
/// </summary>
/// <returns>数据源</returns>
private DataTable getDB()
DataTable dt=new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("age");
dt.Rows.Add(new object[] { "000001", "hekui", "26" });
dt.Rows.Add(new object[] { "000002", "zhangyu", "26" });
dt.Rows.Add(new object[] { "000003", "zhukundian", "27" });
dt.Rows.Add(new object[] { "000004", "liyang", "25" });
dt.Rows.Add(new object[] { "000005", "caili", "27" });
return dt;
前言:
GridView
可用于展示多行多列的统一格式数据,但本身没有多选操作。现通过一系列代码实现
GridView
的长按多选操作,可以先看一个
示例
图。
以下是实现该功能的主要代码:
MainActivity
.
javapackage com
.
my
gridview
;import android
.
app
.
AlertDialog;
import android
.
content
.
DialogInterf
GridView
自带了数据
排序
功能。在设计视图下,只能对
GridView
的
排序
数据列和
排序
方向进行静态设置。在后台程序中,则需要用Attributes方式对
GridView
的这两个属性进行动态设置。
示例
如下:(前台)
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default
.
asp
x
.
cs"Inher
.
.
.
1
.
<
asp
:
GridView
ID="gvResult" runat="server"AllowSorting="true" OnSorting="gvResult_Sorting"/>
2
.
<
asp
:TemplateField SortExpression="Sort">
-
-
这个写法有多种
3
.
设置不同的
排序
方式,并重
.
.
.
注意两点:
1
.
要将
gridview
的AllowSorting属性置为true,同时设置OnSorting事件
2
.
在OnSorting事件中对
排序
的列设定SortExpression属性
protected void Page_Load(object sender, EventArgs e)
if (!Page
.
IsPo
这是我第一篇技术方面的Blog,写Blog的主要目的是督促自己不断地学习新知识,对学过的知识整理归纳,以便于更好的消化吸收,同时也为了和别人做一些技术
分享
和交流,以共同提高。
看到一位Android达人写的“使用ViewPager实现高仿Launcher的拖动效果的文章”,我就按照他的介绍试验了一下,效果还不错。
下面上正文:
ViewPager是实现左右两个屏幕平滑地切换的一个类,它是go
public int id { get; set; }
public string scoreitem { get; set; }
public int score { get; set; }
C# Lamda 表达式 GroupBy实现数据统计分组
qq_52296653: