gridview的手动排序(sorting事件)

昨天做了一个,点击gridview标题自动排序的小例子,当然我没有用.只是想实现一下这个效果,感觉还好.在些简单的分享一下思路.
小述.无可争议,gridview真的好强大.呵.他的自带功能事件,以超出了我的想像(当然是只以前).由于自己也没用这个多久,渐渐的才对它有了熟悉的感觉,发现可以实现太多的功能.看到好的效果回来就自己弄一下.闲话少说,正题:

/*以下提到的gv就是我的gridview的ID.*/

1. 首先先要设置gridview的AllowSorting属性为了true.
      gv.AllowSorting = true;
2.设置要做排序的列sortexpression 属性里面附值.假设为 "name"    //即想按名称排序
3.创建gv的sorting事件.
       之后在里面可以根据委托事件,e.sortexpression取到name.之后将名称可以附给定义的变量.
       之后根据这个变量做查询照顾到部分新的朋友可能没用过.我是这样处理的.

//执行排序的函数

private void sortBind(string column)
      {
          int result;//返回函数结果
          op = new Operator(connection(), -1, "", "", "", "");//我自定义的一个对像,里面有查询功能,这为声明构造函数
          result = op.VIP_QueryMemberBaseData(); // 执行查询
          if (result == 0)
          {

//通过dataview进行排序
              DataView dv = op.resultDataset.Tables[0].DefaultView;
              dv.Sort = column + " " + lbSort.Text;
              gvTest.DataSource = dv;
              gvTest.DataBind();
          }
      }

//gv的排序事件.每次你点击你要排序的列标题时,就会跳到这里.
      protected void gvTest_Sorting(object sender, GridViewSortEventArgs e)
      {
//这里是判断是递增还是递减,开始给一个默认之后点一次变一次.lbsort.text是在页面我隐藏的一个控件.
          if (lbSort.Text == "desc")
          {
              lbSort.Text = "asc";
          }
          else
          {
              lbSort.Text = "desc";
          }


          string column;
          //alert("aaaa", "alert");
          column = e.SortExpression.ToString();//通过秀托取到排序用的参数
          sortBind(column);//把参数传给查询函数.
      }

最后总结:其实排序也好翻页也罢,我们都要知道,委托事件的做用.它是很关键的,重要数据都要通过它来取到.最后要进行哪一个操作那它的大体操作流程一定是:
首先:要打开相关的属性,(如:排序有. allowsorting, 分页有allowpaging)等.
其次:可能需要委托事件传递的属性,(如按钮命令事件里的,commandname,排序事件里的.sortexpression)     还有好多你可以去发觉.

最后:就是事件,要处发的事件,事件的目的,就是当你点击或双击等时处发,并在里面写上相信的处理过程.并通过委托事件,找到你要的参数,最后,返回给界面一个需要的结果.

想明白时才发觉原来如些简单,想当初苦苦的找寻,哪怕一个小小的翻页都不会,那真的是很惨.所以思路很重要.我想其它组件也类似吧.最后,题外话,曾见过一个,不,应是多个朋友,他们都喜欢手动敲代码.他们更相信自己胜过第三方软件.当然我的看法不全同,我的看法.大家尽可以的自己处理,在做项目时可以用第三方,不要完全否定第三方控件.但自己敲的好处那就是你对低层的深刻理解,也只有这样你才能够在日后有长足的进步,最后祝大家都进步如飞.呵呵,前程似锦.

你可能感兴趣的:(GridView)