ListView排序(code behind)

摘要:ListView排序(code behind)

.ASPX 内容



                        --%>

.cs 后端内容


public partial class ListViewFrom : System.Web.UI.Page
    {
        DBHelper db = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            db = new DBHelper();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //将排序的ViewState设定为null,新的查询才会为初始的排序
            ViewState["SortExpression"] = null;
            this.Bind(ViewState["SortExpression"]);
        }

        private void Bind(object oSortExpression)
        {
            //当查询语法的TextBox为空时return
            if (this.TextBox1.Text.Trim().Equals("")) return;
            string sSQL = this.TextBox1.Text.Trim();
            if (oSortExpression != null) //当传入的排序参数不为null将串成SQL语法
                sSQL = this.TextBox1.Text.Trim() + oSortExpression.ToString();

            //进行查询
            DataSet ds = db.QueryData(sSQL);
            //设定ListView的数据来源
            this.ListView1.DataSource = ds;
            //进行数据Bind动作
            this.ListView1.DataBind();
        }

        protected void ListView1_PagePropertiesChanged(object sender, EventArgs e)
        {
            //取得ListView的分页组件
            DataPager dp = this.ListView1.FindControl("_moviesGridDataPager") as DataPager;
            //取得每页所要显示的笔数
            int pagesize = dp.PageSize;
            //取得所要浏览的分页号码
            int startRowIndex = dp.StartRowIndex;
            //取得数据笔数
            int totalRowCount = dp.TotalRowCount;
            //设定分页组件所要显示的分页号和每页所显示的笔数
            dp.SetPageProperties(startRowIndex, pagesize, true);
            //数据设定
            this.Bind(ViewState["SortExpression"]);
        }

        protected void ListView1_Sorting(object sender, ListViewSortEventArgs e)
        {
            string sSortDirection = "ASC";
            //当ViewState的Key为SortExpression非null时
            if (ViewState["SortExpression"] != null)
            {
                //判断SortExpression的Value字符串是否包含ASC
                if (ViewState["SortExpression"].ToString().Contains(sSortDirection))
                {
                    //代表该字段要设为DESC
                    sSortDirection = " DESC ";
                }
            }
            else
            {
                sSortDirection = " DESC ";
            }
            //SortExpression的Value排序 e.SortExpression为要排序的字段,sSortDirection为本次的排序方式
            ViewState["SortExpression"] = " ORDER BY " + e.SortExpression + " " + sSortDirection;
            this.Bind(ViewState["SortExpression"]);
        }
    }

原文:大专栏  ListView排序(code behind)

原文地址:https://www.cnblogs.com/petewell/p/11518140.html

时间: 2024-08-10 17:08:18

ListView排序(code behind)的相关文章

关于listview排序的说明

增加了排序属性后(即设置ListViewItemSorter属性),即便是把listview的内容全部清掉(listView.Items.Clear()),然后再重新添加行(listView.Items.Add(lvi)),新增加的行也不是按增加的顺序,而是按照排序之后的顺序. 如果要按照增加的顺序来显示,则需要执行(listView.ListViewItemSorter = null)

C# winform中listview排序

本文解决方案是采用下面链接中的解决方案.十分感谢这篇文章的作者bright:http://blog.163.com/[email protected]/blog/static/1312896522010614103538287/ 看到网上的许多解决方案(其实就是一种,只不过被转载和粘贴,所以没什么用.同时那么多的代码居然屌用没有(原谅我说脏话了)(那种方法的解决方案是这样的https://support.microsoft.com/en-us/kb/319401).最后终于在一篇网易博客上找到了

Android开发之ListView排序

下面是activity: [java] view plaincopy public class MainActivity extends Activity { private ListView mListView = null; private List<TestDate> mList = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s

冒泡排序和鸡尾酒排序(code)

昨天回顾了下冒泡排序和鸡尾酒排序,用面向对象的方式写了一下,并且优化了代码,记录一下~ 一.冒泡排序 # 冒泡排序 class BubbleSort(object): def __init__(self, data_list): self.data_list = data_list self.length = len(data_list) # 简单粗暴的排序方式 def b_sort(self): data_list = list(self.data_list) for i in range(s

在ListView中实现排序

此处介绍的情境是: (1)使用table布局ListView. (2)ListView的数据源是List<T>. (3)排序字段2个(帖子的回复次数和浏览次数),都是int类型. 基本思路: ListView触发数据源排序,使用数据源(即List<T>)的Sort()方法,又一次绑定数据源到ListView. 实现步骤: (1)可查知,List<T>的Sort()方法带有一个ICompare<T>泛型接口类型的形參.所以,首先构造继承该泛型接口的类型: //

【BZOJ-1924】所驼门王的宝藏 Tarjan缩点(+拓扑排序) + 拓扑图DP

1924: [Sdoi2010]所驼门王的宝藏 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 787  Solved: 318[Submit][Status][Discuss] Description Input 第一行给出三个正整数 N, R, C. 以下 N 行,每行给出一扇传送门的信息,包含三个正整数xi, yi, Ti,表示该传送门设在位于第 xi行第yi列的藏宝宫室,类型为 Ti.Ti是一个1~3间的整数, 1表示可以传送到第 xi行任意

Delphi ListView基本用法大全[delphi]

Delphi ListView基本用法大全 本文出处:http://hi.baidu.com/python120/item/4ea85f61af94e55b6895e6ac //增加项或列(字段) ListView1.Clear;ListView1.Columns.Clear;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Items[0].Caption:='id';List

004_Delphi界面篇之ListView控件

//增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Items[0].Caption:='id'; ListView1.Columns.Items[1].Caption:='type'; ListView1.Columns.Items[2].Caption:='titl

ListView 连接数据库的增删改查

private string link = "server=.;database=list;user=sa;pwd=123"; public void chaxun() //创建一个查询函数 { SqlConnection coon = new SqlConnection(link); //连接数据库 coon.Open();//打开数据库 SqlCommand cmd = coon.CreateCommand();//创建命令 cmd.CommandText = "sele