GridView排序问题 我gridview的表头是动态添加,为什么在后台写了代码 ,排序还是没反应,allowsort也设置true,还要有什么注意的地方吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 列绑定排序字段SortExpression="字段名" ? GRIDVIEW边上有个三角形,在哪里绑定下字段 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ViewState["SortOrder"] = "shopeScoure";//设置排序字段 ViewState["OrderDire"] = "Desc";//设置排序方式 GridViewBind(); } } public void GridViewBind() { //实例化SqlConnection对象 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=sa;database=db_11"); con.Open(); //实例化SqlDataAdapter对象 SqlDataAdapter da = new SqlDataAdapter("select * from tb_02", con); //实例化数据集DataSet DataSet ds = new DataSet(); da.Fill(ds, "tb_02"); //设置AllowSorting属性 GridView1.AllowSorting = true; DataView dv = ds.Tables[0].DefaultView; dv.Sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; //绑定DataList控件 GridView1.DataSource = dv;//设置数据源,用于填充控件中的项的值列表 GridView1.DataBind();//将控件及其所有子控件绑定到指定的数据源 } 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; } GridViewBind(); } 借楼主的帖子,我也请教各位一个排序的问题:我的用的排序是DataView dv=dt.DefaultView;dv.Sort="myField asc";//or "myField desc"gridView.DataSource=dv;gridView.DataBind();但是每个列不管列内容是数值还是字符串,都是按字符串的排序规则,如按“a b c” 、“9000 9.1 888 889 .... 1000.03”不知是什么原因?谢谢!(楼主勿见怪!) 这个【、“9000 9.1 888 889 .... 1000.03” 】写错了实际排出来的效果如下:desc9.87 9796...10310.54... 不好意思,上述我所说的排序,可以在构造datatable的时候,对列指定类型,可以解决。 我的代码就是跟四楼说的一样,但是没反应。protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.btnExport.Visible = false; ViewState["SortOrder"] = "学号"; ViewState["OrderDire"] = "ASC"; ddlYearBind(); gdvYearBind(); } } public void gdvYearBind() { SqlConnection con = db.GetConnection(); con.Open(); SqlDataAdapter sda = new SqlDataAdapter("proState",con); sda.SelectCommand.CommandType = CommandType.StoredProcedure; SqlParameter prams = new SqlParameter("@Term",SqlDbType.VarChar,20); prams.Value = this.ddlYear.SelectedValue; sda.SelectCommand.Parameters.Add(prams); DataSet ds = new DataSet(); sda.Fill(ds,"table"); DataView dv=ds.Tables["table"].DefaultView; string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; dv.Sort = sort; gdvYear.DataSource=dv; gdvYear.DataBind(); } protected void gdvYear_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; } gdvYearBind(); } //创建表头 protected void gdvYear_RowCreated(object sender, GridViewRowEventArgs e) { switch (e.Row.RowType) //行的类型 { case DataControlRowType.Header: //判断是否是表头 TableCellCollection tcHeader = e.Row.Cells; tcHeader.Clear(); tcHeader.Add(new TableHeaderCell()); //添加第一行第一列 tcHeader[0].Attributes.Add("rowspan", "2"); //夸行 tcHeader[0].Attributes.Add("bgcolor", "bfcded"); tcHeader[0].Attributes.Add("fontcolor", "balck"); tcHeader[0].Attributes.Add("SortExpression","Sno"); tcHeader[0].Text = "<a href='#'>学号</a>"; tcHeader.Add(new TableHeaderCell()); //添加第一行第二列 tcHeader[1].Attributes.Add("rowspan", "2"); tcHeader[1].Attributes.Add("bgcolor", "bfcded"); tcHeader[1].Attributes.Add("fontcolor", "balck"); tcHeader[1].Text = "姓名"; tcHeader.Add(new TableHeaderCell()); //添加第一行第三列 tcHeader[2].Attributes.Add("colspan", "4"); //跨列 tcHeader[2].Attributes.Add("bgcolor", "bfcded"); tcHeader[2].Attributes.Add("fontcolor", "balck"); tcHeader[2].Text = "考勤状态"; tcHeader.Add(new TableHeaderCell()); //添加第一行第四列 tcHeader[3].Attributes.Add("rowspan", "2"); tcHeader[3].Attributes.Add("bgcolor", "bfcded"); tcHeader[3].Attributes.Add("fontcolor", "balck"); tcHeader[3].Text = "总次数</th></tr><tr>"; //添加第二行 tcHeader.Add(new TableHeaderCell()); tcHeader[4].Attributes.Add("bgcolor", "bfcded"); tcHeader[4].Text = "早退"; tcHeader.Add(new TableHeaderCell()); tcHeader[5].Attributes.Add("bgcolor", "bfcded"); tcHeader[5].Text = "迟到"; tcHeader.Add(new TableHeaderCell()); tcHeader[6].Attributes.Add("bgcolor", "bfcded"); tcHeader[6].Text = "旷课"; tcHeader.Add(new TableHeaderCell()); tcHeader[7].Attributes.Add("bgcolor", "bfcded"); tcHeader[7].Text = "请假"; break; } 求asp.net中连接sql server 2005方法 求oracle面试题 GridView如何实现点击当前行触发服务器事件??? 奇怪的问题 直接写id名字也能对属性修改 高手帮看看,着手DataTable排序的问题 哪个属性可以让一个html table 不显示? 如何使用C#条件查询XML并且显示到DataGridView 本人求购一套虚拟主机管理系统 PB 的朋友有QQ的号码留下 联系联系! .net的版本问题,谁能告诉我beta版和正式版有什么主要区别!!! treeview checkbox的问题 缺少必要的指令集
{
if (!IsPostBack)
{
ViewState["SortOrder"] = "shopeScoure";//设置排序字段
ViewState["OrderDire"] = "Desc";//设置排序方式
GridViewBind();
}
}
public void GridViewBind()
{
//实例化SqlConnection对象
SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=sa;database=db_11");
con.Open();
//实例化SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter("select * from tb_02", con);
//实例化数据集DataSet
DataSet ds = new DataSet();
da.Fill(ds, "tb_02");
//设置AllowSorting属性
GridView1.AllowSorting = true;
DataView dv = ds.Tables[0].DefaultView;
dv.Sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
//绑定DataList控件
GridView1.DataSource = dv;//设置数据源,用于填充控件中的项的值列表
GridView1.DataBind();//将控件及其所有子控件绑定到指定的数据源
}
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;
}
GridViewBind();
}
我的用的排序是
DataView dv=dt.DefaultView;
dv.Sort="myField asc";//or "myField desc"
gridView.DataSource=dv;
gridView.DataBind();但是每个列不管列内容是数值还是字符串,都是按字符串的排序规则,如按“a b c” 、“9000 9.1 888 889 .... 1000.03”不知是什么原因?谢谢!
(楼主勿见怪!)
实际排出来的效果如下:desc
9.87
9
79
6
.
.
.
103
10.54
.
.
.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnExport.Visible = false;
ViewState["SortOrder"] = "学号";
ViewState["OrderDire"] = "ASC";
ddlYearBind();
gdvYearBind();
}
}
public void gdvYearBind()
{
SqlConnection con = db.GetConnection();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("proState",con);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlParameter prams = new SqlParameter("@Term",SqlDbType.VarChar,20);
prams.Value = this.ddlYear.SelectedValue;
sda.SelectCommand.Parameters.Add(prams);
DataSet ds = new DataSet();
sda.Fill(ds,"table");
DataView dv=ds.Tables["table"].DefaultView;
string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
dv.Sort = sort;
gdvYear.DataSource=dv;
gdvYear.DataBind();
}
protected void gdvYear_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;
} gdvYearBind(); }
//创建表头
protected void gdvYear_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType) //行的类型
{
case DataControlRowType.Header: //判断是否是表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell()); //添加第一行第一列
tcHeader[0].Attributes.Add("rowspan", "2"); //夸行
tcHeader[0].Attributes.Add("bgcolor", "bfcded");
tcHeader[0].Attributes.Add("fontcolor", "balck");
tcHeader[0].Attributes.Add("SortExpression","Sno");
tcHeader[0].Text = "<a href='#'>学号</a>"; tcHeader.Add(new TableHeaderCell()); //添加第一行第二列
tcHeader[1].Attributes.Add("rowspan", "2");
tcHeader[1].Attributes.Add("bgcolor", "bfcded");
tcHeader[1].Attributes.Add("fontcolor", "balck");
tcHeader[1].Text = "姓名"; tcHeader.Add(new TableHeaderCell()); //添加第一行第三列
tcHeader[2].Attributes.Add("colspan", "4"); //跨列
tcHeader[2].Attributes.Add("bgcolor", "bfcded");
tcHeader[2].Attributes.Add("fontcolor", "balck");
tcHeader[2].Text = "考勤状态"; tcHeader.Add(new TableHeaderCell()); //添加第一行第四列
tcHeader[3].Attributes.Add("rowspan", "2");
tcHeader[3].Attributes.Add("bgcolor", "bfcded");
tcHeader[3].Attributes.Add("fontcolor", "balck");
tcHeader[3].Text = "总次数</th></tr><tr>"; //添加第二行
tcHeader.Add(new TableHeaderCell());
tcHeader[4].Attributes.Add("bgcolor", "bfcded");
tcHeader[4].Text = "早退";
tcHeader.Add(new TableHeaderCell());
tcHeader[5].Attributes.Add("bgcolor", "bfcded");
tcHeader[5].Text = "迟到";
tcHeader.Add(new TableHeaderCell());
tcHeader[6].Attributes.Add("bgcolor", "bfcded");
tcHeader[6].Text = "旷课";
tcHeader.Add(new TableHeaderCell());
tcHeader[7].Attributes.Add("bgcolor", "bfcded");
tcHeader[7].Text = "请假";
break; }