怎么实现GridView排序??? 其他属性都是设置好了,在GridView1_Sorting事件中写什么代码??学习!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 后代主要代码:using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class Default3 : System.Web.UI.Page { //清清月儿的博客http://blog.csdn.net/21aspnet SqlConnection sqlcon; string strCon = "Data Source=(local);Database=北风贸易;Uid=sa;Pwd="; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ViewState["SortOrder"] = "身份证号码"; ViewState["OrderDire"] = "ASC"; bind(); } } protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { string sPage = e.SortExpression; if (ViewState["SortOrder"].ToString() == sPage) { if (ViewState["OrderDire"].ToString() == "Desc") ViewState["OrderDire"] = "ASC"; else ViewState["OrderDire"] = "Desc"; } else { ViewState["SortOrder"] = e.SortExpression; } bind(); } public void bind() { string sqlstr = "select top 5 * from 飞狐工作室"; sqlcon = new SqlConnection(strCon); SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); DataSet myds = new DataSet(); sqlcon.Open(); myda.Fill(myds, "飞狐工作室"); DataView view = myds.Tables["飞狐工作室"].DefaultView; string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; view.Sort = sort; GridView1.DataSource = view; GridView1.DataBind(); sqlcon.Close(); } } 前台主要代码: <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" CellPadding="3" Font-Size="9pt" OnSorting="GridView1_Sorting" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"> <FooterStyle BackColor="White" ForeColor="#000066" /> <Columns> <asp:BoundField DataField="身份证号码" HeaderText="用户ID" SortExpression="身份证号码" /> <asp:BoundField DataField="姓名" HeaderText="用户姓名" SortExpression="姓名"/> <asp:BoundField DataField="员工性别" HeaderText="性别" SortExpression="员工性别"/> <asp:BoundField DataField="家庭住址" HeaderText="家庭住址" SortExpression="家庭住址"/> </Columns> <RowStyle ForeColor="#000066" /> <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" /> <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" /> </asp:GridView> protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { if (ViewState["order"] == null) { ViewState["order"] = "ASC"; } else { if (ViewState["order"].ToString() == "ASC") { ViewState["order"] = "DESC"; } else { ViewState["order"] = "ASC"; } } DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(); da.Fill(ds); ds.Tables[0].DefaultView.Sort =e.SortExpression +" "+ViewState["order"] ; this.GridView1.DataSource =ds.Tables[0]; GridView1.DataBind(); }这样也可以,不过建议使用上面的那种. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowSorting="true" OnSorting="GridView1_Sorting" AllowPaging="true" PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging"> <Columns> <asp:BoundField DataField="id" HeaderText="代码" SortExpression="id"/> <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name"/> <asp:TemplateField SortExpression="BUID" HeaderText="BUID"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text=' <%# Bind("ID") %>' ToolTip=' <%# DataBinder.Eval(Container.DataItem, "ID") %>'> </asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ViewState["SortOrder"] = "deptid"; ViewState["OrderDire"] = "asc"; BindGridView(); } } protected void BindGridView() { DataSet ds = new DataSet(); DataView dv = ds.Tables[0].DefaultView; string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; dv.Sort = sort; this.GridView1.DataSource = dv; this.GridView1.DataBind(); } protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { string vortExp = e.SortExpression; if (ViewState["SortOrder"].ToString() == vortExp) { if ((string)ViewState["OrderDire"] == "desc") { ViewState["OrderDire"] = "asc"; } else if ((string)ViewState["OrderDire"] == "asc") { ViewState["OrderDire"] = "desc"; } } else { ViewState["SortOrder"] = e.SortExpression; } BindGridView(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { this.GridView1.PageIndex = e.NewPageIndex; BindGridView(); } GridView控件自带排序(一)1 using System; 2 using System.Data; 3 using System.Data.SqlClient; 4 using System.Configuration; 5 using System.Collections; 6 using System.Web; 7 using System.Web.Security; 8 using System.Web.UI; 9 using System.Web.UI.WebControls;10 using System.Web.UI.WebControls.WebParts;11 using System.Web.UI.HtmlControls;12 13 public partial class Demo6 : System.Web.UI.Page14 {15 protected void Page_Load(object sender, EventArgs e)16 {17 if (Page.IsPostBack == false)18 {19 this.GridView.Attributes.Add("SortExpression", "UserID");20 this.GridView.Attributes.Add("SortDirection", "ASC");21 22 BindData();23 }24 }25 26 public void BindData()27 {28 string sortExpression = this.GridView.Attributes["SortExpression"];29 string sortDirection = this.GridView.Attributes["SortDirection"];30 31 string strSql = "select UserID,C_Name,E_Name,QQ from Demo_User ";32 DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.CONN_STRING, CommandType.Text, strSql, null).Tables[0];33 34 // 根据GridView排序数据列及排序方向设置显示的默认数据视图35 if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))36 {37 dt.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);38 }39 40 GridView.DataSource = dt;41 GridView.DataBind();42 }43 44 protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)45 {46 GridView.PageIndex = e.NewPageIndex;47 BindData();48 }49 50 protected void GridView_Sorting(object sender, GridViewSortEventArgs e)51 {52 // 从事件参数获取排序数据列53 string sortExpression = e.SortExpression.ToString();54 // 假定为排序方向为“顺序”55 string sortDirection = "ASC";56 // “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改57 if (sortExpression == this.GridView.Attributes["SortExpression"])58 {59 //获得下一次的排序状态60 sortDirection = (this.GridView.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");61 }62 // 重新设定GridView排序数据列及排序方向63 this.GridView.Attributes["SortExpression"] = sortExpression;64 this.GridView.Attributes["SortDirection"] = sortDirection;65 BindData();66 67 }68 }GridView控件自带排序(二)1 using System; 2 using System.Data; 3 using System.Data.SqlClient; 4 using System.Configuration; 5 using System.Collections; 6 using System.Web; 7 using System.Web.Security; 8 using System.Web.UI; 9 using System.Web.UI.WebControls;10 using System.Web.UI.WebControls.WebParts;11 using System.Web.UI.HtmlControls;12 13 public partial class Demo7 : System.Web.UI.Page14 {15 protected void Page_Load(object sender, EventArgs e)16 {17 if (Page.IsPostBack == false)18 {19 ViewState["SortOrder"] = "UserID";20 ViewState["OrderDire"] = "ASC";21 22 BindData();23 }24 }25 26 public void BindData()27 {28 string sortExpression = this.GridView.Attributes["SortExpression"];29 string sortDirection = this.GridView.Attributes["SortDirection"];30 31 string strSql = "select UserID,C_Name,E_Name,QQ from Demo_User ";32 DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.CONN_STRING, CommandType.Text, strSql, null).Tables[0];33 34 DataView dv = dt.DefaultView;35 string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];36 dv.Sort = sort;37 38 GridView.DataSource = dt;39 GridView.DataBind();40 }41 42 protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)43 {44 GridView.PageIndex = e.NewPageIndex;45 BindData();46 }47 48 protected void GridView_Sorting(object sender, GridViewSortEventArgs e)49 {50 string sPage = e.SortExpression;51 if (ViewState["SortOrder"].ToString() == sPage)52 {53 if (ViewState["OrderDire"].ToString() == "Desc")54 ViewState["OrderDire"] = "ASC";55 else56 ViewState["OrderDire"] = "Desc";57 }58 else59 {60 ViewState["SortOrder"] = e.SortExpression;61 }62 BindData();63 64 }65 }66 67 68 1 <table align="center" bgcolor="#c0de98" border="0" cellpadding="0" cellspacing="1" width="99%"> 2 <tr> 3 <th colspan="2"> 4 GridView演示</th> 5 </tr> 6 <tr> 7 <td colspan="2" style="width: 100%;" > 8 <asp:GridView ID="GridView" runat="server" Width="100%" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="GridView_PageIndexChanging" PageSize="12" AllowSorting="True" OnSorting="GridView_Sorting" > 9 <Columns>10 <asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID" />11 <asp:BoundField DataField="C_Name" HeaderText="中文名字" SortExpression="C_Name" />12 <asp:BoundField DataField="E_Name" HeaderText="英文名字" SortExpression="E_Name" />13 <asp:BoundField DataField="QQ" HeaderText="QQ帐号" SortExpression="QQ" />14 </Columns>15 <RowStyle HorizontalAlign="Center" /> 16 <PagerStyle HorizontalAlign="Right" />17 </asp:GridView>18 </td>19 </tr>20 21 22 </table> 用juery.tablesorter 比这个爽多了,而且在客户端执行,不回传服务器 look this:http://www.codeproject.com/KB/grid/multicolumn_sort.aspx 那用LINQ获取数据源,怎么写呢???? 打开设计模式时报错:cannot load fpcutl.dll 一个最最简单的正则表达式问题 怎么实现两个模态窗口同时关闭 关于fileupload的未找到路径 为什么我学得这么慢?是不是方法不对? 急啊,公司的项目还么有做出来大家帮帮我看看这个功能如何实现 如何删除一个下拉框中的一项? 请问怎样把一个帧里的内容保存成htm文件上传到服务器和数据库 水晶报表的问题?是BUG吗? 救命啦!水晶报表“登录失败”的问题还没搞定(没有密码的已搞定),请已经解决此问题的朋友进来看看,万分感谢! gridview编辑的问题!请大家帮帮忙 莫名其妙的URL
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Default3 : System.Web.UI.Page
{
//清清月儿的博客http://blog.csdn.net/21aspnet
SqlConnection sqlcon;
string strCon = "Data Source=(local);Database=北风贸易;Uid=sa;Pwd=";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["SortOrder"] = "身份证号码";
ViewState["OrderDire"] = "ASC";
bind();
}
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sPage = e.SortExpression;
if (ViewState["SortOrder"].ToString() == sPage)
{
if (ViewState["OrderDire"].ToString() == "Desc")
ViewState["OrderDire"] = "ASC";
else
ViewState["OrderDire"] = "Desc";
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
bind();
}
public void bind()
{
string sqlstr = "select top 5 * from 飞狐工作室";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "飞狐工作室");
DataView view = myds.Tables["飞狐工作室"].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
view.Sort = sort;
GridView1.DataSource = view;
GridView1.DataBind();
sqlcon.Close();
}
}
前台主要代码:
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False"
CellPadding="3" Font-Size="9pt" OnSorting="GridView1_Sorting" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px">
<FooterStyle BackColor="White" ForeColor="#000066" />
<Columns>
<asp:BoundField DataField="身份证号码" HeaderText="用户ID" SortExpression="身份证号码" />
<asp:BoundField DataField="姓名" HeaderText="用户姓名" SortExpression="姓名"/>
<asp:BoundField DataField="员工性别" HeaderText="性别" SortExpression="员工性别"/>
<asp:BoundField DataField="家庭住址" HeaderText="家庭住址" SortExpression="家庭住址"/>
</Columns>
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
{
if (ViewState["order"] == null)
{
ViewState["order"] = "ASC";
}
else
{
if (ViewState["order"].ToString() == "ASC")
{
ViewState["order"] = "DESC";
}
else
{
ViewState["order"] = "ASC";
}
}
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.Fill(ds);
ds.Tables[0].DefaultView.Sort =e.SortExpression +" "+ViewState["order"] ;
this.GridView1.DataSource =ds.Tables[0];
GridView1.DataBind();
}
这样也可以,不过建议使用上面的那种.
<Columns>
<asp:BoundField DataField="id" HeaderText="代码" SortExpression="id"/>
<asp:BoundField DataField="name" HeaderText="名称" SortExpression="name"/>
<asp:TemplateField SortExpression="BUID" HeaderText="BUID">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text=' <%# Bind("ID") %>' ToolTip=' <%# DataBinder.Eval(Container.DataItem, "ID") %>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ViewState["SortOrder"] = "deptid";
ViewState["OrderDire"] = "asc";
BindGridView();
}
} protected void BindGridView()
{
DataSet ds = new DataSet();
DataView dv = ds.Tables[0].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
dv.Sort = sort;
this.GridView1.DataSource = dv; this.GridView1.DataBind(); }
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string vortExp = e.SortExpression;
if (ViewState["SortOrder"].ToString() == vortExp)
{
if ((string)ViewState["OrderDire"] == "desc")
{
ViewState["OrderDire"] = "asc";
}
else if ((string)ViewState["OrderDire"] == "asc")
{
ViewState["OrderDire"] = "desc";
}
}
else
{
ViewState["SortOrder"] = e.SortExpression;
}
BindGridView(); }
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.GridView1.PageIndex = e.NewPageIndex;
BindGridView();
}
1 using System;
2 using System.Data;
3 using System.Data.SqlClient;
4 using System.Configuration;
5 using System.Collections;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.WebControls;
10 using System.Web.UI.WebControls.WebParts;
11 using System.Web.UI.HtmlControls;
12
13 public partial class Demo6 : System.Web.UI.Page
14 {
15 protected void Page_Load(object sender, EventArgs e)
16 {
17 if (Page.IsPostBack == false)
18 {
19 this.GridView.Attributes.Add("SortExpression", "UserID");
20 this.GridView.Attributes.Add("SortDirection", "ASC");
21
22 BindData();
23 }
24 }
25
26 public void BindData()
27 {
28 string sortExpression = this.GridView.Attributes["SortExpression"];
29 string sortDirection = this.GridView.Attributes["SortDirection"];
30
31 string strSql = "select UserID,C_Name,E_Name,QQ from Demo_User ";
32 DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.CONN_STRING, CommandType.Text, strSql, null).Tables[0];
33
34 // 根据GridView排序数据列及排序方向设置显示的默认数据视图
35 if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
36 {
37 dt.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
38 }
39
40 GridView.DataSource = dt;
41 GridView.DataBind();
42 }
43
44 protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
45 {
46 GridView.PageIndex = e.NewPageIndex;
47 BindData();
48 }
49
50 protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
51 {
52 // 从事件参数获取排序数据列
53 string sortExpression = e.SortExpression.ToString();
54 // 假定为排序方向为“顺序”
55 string sortDirection = "ASC";
56 // “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
57 if (sortExpression == this.GridView.Attributes["SortExpression"])
58 {
59 //获得下一次的排序状态
60 sortDirection = (this.GridView.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
61 }
62 // 重新设定GridView排序数据列及排序方向
63 this.GridView.Attributes["SortExpression"] = sortExpression;
64 this.GridView.Attributes["SortDirection"] = sortDirection;
65 BindData();
66
67 }
68 }GridView控件自带排序(二)
1 using System;
2 using System.Data;
3 using System.Data.SqlClient;
4 using System.Configuration;
5 using System.Collections;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.WebControls;
10 using System.Web.UI.WebControls.WebParts;
11 using System.Web.UI.HtmlControls;
12
13 public partial class Demo7 : System.Web.UI.Page
14 {
15 protected void Page_Load(object sender, EventArgs e)
16 {
17 if (Page.IsPostBack == false)
18 {
19 ViewState["SortOrder"] = "UserID";
20 ViewState["OrderDire"] = "ASC";
21
22 BindData();
23 }
24 }
25
26 public void BindData()
27 {
28 string sortExpression = this.GridView.Attributes["SortExpression"];
29 string sortDirection = this.GridView.Attributes["SortDirection"];
30
31 string strSql = "select UserID,C_Name,E_Name,QQ from Demo_User ";
32 DataTable dt = SqlHelper.ExecuteDataset(SqlHelper.CONN_STRING, CommandType.Text, strSql, null).Tables[0];
33
34 DataView dv = dt.DefaultView;
35 string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
36 dv.Sort = sort;
37
38 GridView.DataSource = dt;
39 GridView.DataBind();
40 }
41
42 protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
43 {
44 GridView.PageIndex = e.NewPageIndex;
45 BindData();
46 }
47
48 protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
49 {
50 string sPage = e.SortExpression;
51 if (ViewState["SortOrder"].ToString() == sPage)
52 {
53 if (ViewState["OrderDire"].ToString() == "Desc")
54 ViewState["OrderDire"] = "ASC";
55 else
56 ViewState["OrderDire"] = "Desc";
57 }
58 else
59 {
60 ViewState["SortOrder"] = e.SortExpression;
61 }
62 BindData();
63
64 }
65 }
66
67
68 1 <table align="center" bgcolor="#c0de98" border="0" cellpadding="0" cellspacing="1" width="99%">
2 <tr>
3 <th colspan="2">
4 GridView演示</th>
5 </tr>
6 <tr>
7 <td colspan="2" style="width: 100%;" >
8 <asp:GridView ID="GridView" runat="server" Width="100%" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="GridView_PageIndexChanging" PageSize="12" AllowSorting="True" OnSorting="GridView_Sorting" >
9 <Columns>
10 <asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID" />
11 <asp:BoundField DataField="C_Name" HeaderText="中文名字" SortExpression="C_Name" />
12 <asp:BoundField DataField="E_Name" HeaderText="英文名字" SortExpression="E_Name" />
13 <asp:BoundField DataField="QQ" HeaderText="QQ帐号" SortExpression="QQ" />
14 </Columns>
15 <RowStyle HorizontalAlign="Center" />
16 <PagerStyle HorizontalAlign="Right" />
17 </asp:GridView>
18 </td>
19 </tr>
20
21
22 </table>
http://www.codeproject.com/KB/grid/multicolumn_sort.aspx