GridView多列排序
今天有個需求,對gridview實現多列排序,正反都得實現,剛接觸gridView不久,不是很瞭解,琢磨了一下,得到了結局方法,記錄下來,希望能對他人有所幫助
要求對lcstage和toolname兩列排序。
多列排序實質是在對多列的<asp:TemplateField 中新增SortExpression,而GridView1_Sorting事件通過e.SortExpression.ToString()獲取要排序的欄位名稱,不用
自己單獨設定。
前臺程式碼:
後臺程式碼:<div> <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" onsorting="GridView1_Sorting"> <Columns> <asp:TemplateField HeaderText="ID" SortExpression="ID"> <HeaderStyle /> <ItemTemplate> <asp:LinkButton ID="lblRegionName" runat="server" Text='<%#Eval("ID") %>'></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Name" SortExpression="Name"> <ItemTemplate> <asp:Label ID="lblCityName" runat="server" Text='<%#Eval("Name") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Sex" SortExpression="Sex"> <ItemTemplate> <asp:Label ID="lblUserName" runat="server" Text='<%#Eval("Sex") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </div>
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //下面兩行程式碼可要可不要,如果加上則在頁碼初始化時,預設對ID進行ASC排序,否則原樣顯示。 //this.GridView1.Attributes.Add("SortExpression", "Name"); // this.GridView1.Attributes.Add("SortDirection", "ASC"); GridViewBind(); } } private void GridViewBind() { string sortExpression = this.GridView1.Attributes["SortExpression"]; string sortDirection = this.GridView1.Attributes["SortDirection"]; DataTable dtBind = Data.BindData(); if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection))) { //對datatable排序,gridview實質是對datatable排序,然後顯示 //注意:sort的負值格式為,Name ASC,和資料庫排序格式不一樣 dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection); } this.GridView1.DataSource = dtBind; this.GridView1.DataBind(); } //根據dataset排序查詢結果 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { //獲得要排序的列欄位名稱,如果點選ID表頭,則sortExpression="Name",注意這裡ID是元資料表頭,即datatable中表頭。 string sortExpression = e.SortExpression.ToString(); //給定一個排序方式 string sortDirection = "ASC"; if (sortExpression == this.GridView1.Attributes["SortExpression"]) { sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC"); } this.GridView1.Attributes["SortExpression"] = sortExpression; this.GridView1.Attributes["SortDirection"] = sortDirection; GridViewBind(); }
有圖有真相:
相關推薦
GridView多列排序
今天有個需求,對gridview實現多列排序,正反都得實現,剛接觸gridView不久,不是很瞭解,琢磨了一下,得到了結局方法,記錄下來,希望能對他人有所幫助 要求對lcstage和toolname兩列排序。 多列排序實質是在對多列的<asp:TemplateFiel
javascrpt超強html表格(table)指定多列排序
引用園區一朋友的點選某列排序,因專案需要自己改造成按多列排序 。 不多說,直接上,jquery.js本地要有的吧。直接修改本地jquey目錄,複製以下程式碼即可。 TableSorter body{font-size:12px;line-heigh
Python集合多列排序,多規則排序
今天遇到一個多列排序的問題,排序規則正反不等。接下來就讓我們來看看Python的強大之處吧 我遇到的集合是這樣的: tm_list = [{'markname': '意迪拉凱', 'sm_type': 1, 'sm_zh': 0.4}, {'markname': '盤珠小資料', 's
python sorted list 包含元組 字典 的多列排序
#包含字典dict的列表list的排序方法與dict的排序類似,如下: import operator x = [{'name':'homer', 'age':39}, {'name':'bart', 'age':10}, {'name':'aart', 'age':20}
python sorted list 元組 多列排序
在Python中可以使用sorted函式對list進行排序,但是如果排序的物件是一個包含tuple的list時,sorted函式會使用tuple的第一個元素。 如果想要使用tuple的第二個元素進行排序,可以向sorted函式傳入一個key引數,key引數必須是一個函式,輸入是list的一個元素,輸出最
查詢結果排序,多列排序,聚合函式,查詢分組,篩選結果,select語句執行順序
對指定列進行排序 單列排序要素(order_by_list按該列排序) select col_list form table_name order by order_by_list [ASC|D
【標準答案】sort命令多列排序/複合條件的方法
這只是一個小問題,但是假攻略太多了,所有發出真正的答案。 資料如下: ba 11 a ab 1 b aa 1 c ba 3 d 要求:先按第一列排序,如果重複,再按第2列以數字方式排序 先看一下非常容易百度出來的錯誤答案: 第一條: 並列引數, 也就是 sort -
記錄一下Linq實現多列排序的問題
bubuko 訂單 金額 .com 分享圖片 記錄 方式 mage 單列 記錄一下,平時用的不多,容易忘記關鍵字 以一個訂單列表為例 , 按金額+時間方式排序 先按金額從大到小排序,如果金額相等 則按時間先後順序排序 記錄一下Linq實現多列排序的問題
基數排序之多keyword排序運用隊列
printf mod n) key sort article name str oid 源碼例如以下: #include <stdlib.h> #include <stdio.h> typedef struct QUEUEnode* li
python多維list按照某行或者某列排序
import numpy as np # 隨機生成資料 data = np.random.rand(5, 3) print(data) # 取得第一列排序索引 index = np.argsort(data, 0)[:, 1] print(index) # 根據索引取資
linux sort 多列正排序,倒排序
所有 NPU linux 字典 列表 關於 聯合 逗號 標準 轉載:https://segmentfault.com/a/1190000005713784 sort是在Linux裏非常常用的一個命令,管排序 sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向
GRIDVIEW多行多列合併單元格(合併列)
左邊是原始資料的顯示,右邊是應用合併列之後的效果。 從圖中可以看到,二級指標有兩列,有的行中兩列的內容一樣,有的則不一樣,如果實現如右圖所示,看起來效果會更好一些。下面就著手實現這個功能,我的實現原理很簡單,就是遍歷GridView的行和遍歷行中的單元格,如果單元格的前一列和當前列的內容相同就合
WPF 控制元件(二)ListView ListView+GridView+GridViewColumn+DisplayMemberBinding多列繫結資料的用法
1、設定列表頭 ColumnHeaderContainerStyle用來設定整個列表頭的字型及其背景顏色等等。 2、設定列表內容 ItemContainerStyle用來設定列表內容的字型及其背景顏色等等。 此外,Padding可以設定邊距。 列表
vim 刪除多列
clas -s ctrl ctr ctrl+v ctrl+ 1-1000 -1 刪除一個文件 比如想刪除一個文件的1-1000行的前3列: gg #到文件首ctrl+v #可視塊模式999j,2l #註意是小寫的J
Sql多條件排序
sel http dao 留言 .net get 創建 cat 暴力 多條件排序可以通過在order by語句後面使用case when then條件語句來實現。 select * from 表名 ORDER BY case when 條件 then 0 else 1 e
【ES】學習11-多桶排序
nbsp order key actions color 字符串 efi 結果 literal 聚合結果的排序 默認:桶會根據 doc_count 降序排列。 內置排序: 設置按doc_count升序排序:註意order,_count GET /cars/transa
輕松Angularjs實現表格按指定列排序
filter click arc 我們 點擊 ont 想要 log ner angular表格點擊序號進行升序,再次點擊進行降序排序,在輸入框輸入信息,出現相對應數據的那一行。 html: <input type="text" ng-model="se
解決CSS3多列樣式column-width布局時內容被截斷、錯亂
hive css3多列 none 技術分享 技術 ive cor title log 一、問題 使用CSS3的column-width: auto | <length>屬性時,出現排列的內容被截斷,出現錯位的現象。 二、原因 需要為圖片容器設置高度,不
sql動態創建多列
執行sql num 設置 效果圖 class spa src .cn pan DECLARE @C CHARACTER(20) /*聲明列*/ DECLARE @NUM INT /*聲明創建指定行數*/ DECLARE @sql CHARACTER(500) /*
分別使用shell和python實現兩列排序
lines 相同 要求 open 並且 lam split shel join 有一個文件1.txt如下,要求使用shell和python實現排序,先按照第一列排序,第一列相同再按照第二列排序,並且輸出到另外一個文件2.txt LZdeMacBook-Pro:~ lz$ c