我用DataGrid的排序,如下学生名称 课程1 课程2 课程3
XXX 89 76 100
YYY 72 93 98
ZZZ 97 72 67现在点击课程1已经实现正反排序,如何在三门课程分数前面各加上一个排序号,会根据后面的分数排序变化。如:按照课程1降序排列后结果应该如下:学生名称 课程1 课程2 课程3
ZZZ 1 97 3 72 3 67
XXX 2 89 2 76 1 100
YYY 3 72 1 93 2 98
就是各列排序号动态根据所选的列排序,CSDN上问好久了没有结果,请大家帮帮忙,具体怎么实现,谢谢
XXX 89 76 100
YYY 72 93 98
ZZZ 97 72 67现在点击课程1已经实现正反排序,如何在三门课程分数前面各加上一个排序号,会根据后面的分数排序变化。如:按照课程1降序排列后结果应该如下:学生名称 课程1 课程2 课程3
ZZZ 1 97 3 72 3 67
XXX 2 89 2 76 1 100
YYY 3 72 1 93 2 98
就是各列排序号动态根据所选的列排序,CSDN上问好久了没有结果,请大家帮帮忙,具体怎么实现,谢谢
解决方案 »
- 判断数字
- 我的功能如何实现?
- 找不到类型或命名空间名称“PageChangedEventArgs”(是否缺少 using 指令或程序集引用?)
- xml架构文件主要的用途是什么?
- 数据库中的字段明明是int型的为什么报错说是varchar型
- 在ASP.NET中,怎么样实现PDF格式的打印?
- DotNetTextBox不能输入
- 我要怎么写一个可以反回一个值的自定义类。用vb.net来写的!急!
- 请教专家,如何实现hotmail中的打印预览功能,在哪里能找到相关资料?
- webService中用OleDbConnection时,只要运行到conn.open()就没反应
- 求简单算法??
- 为什么DataReader.GetString(0)出错但DataReader[0].ToString()就可以?
...
from yourtable t
or in code, add three additional columns to your datatableDataTable1.Columns.Add("课程1名次",typeof(int));
DataTable1.Columns.Add("课程2名次",typeof(int));
DataTable1.Columns.Add("课程3名次",typeof(int));DataView dv = new DataView(DataTable1);
dv.Sort = "课程1 DESC";
for(int i=0; i < dv.Count; i++)
dv[i]["课程1名次"] = i+1;dv.Sort = "课程2 DESC";
for(int i=0; i < dv.Count; i++)
dv[i]["课程2名次"] = i+1;dv.Sort = "课程3 DESC";
for(int i=0; i < dv.Count; i++)
dv[i]["课程3名次"] = i+1;
OleDbDataAdapter MyCommand = new OleDbDataAdapter("SELECT 学生姓名,语文,数学,英语 FROM student", conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "student");
DataView Source = ds.Tables["student"].DefaultView;
Source.Table.Columns.Add( "名次1",typeof(int));
Source.Table.Columns.Add( "名次2",typeof(int));
Source.Table.Columns.Add( "名次3",typeof(int));Source.Sort="语文 DESC";
for(int i=0; i < Source.Count ; i++)
Source[i]["名次1"] = i+1;
Source.Sort="数学 DESC";
for(int i=0; i < Source.Count ; i++)
Source[i]["名次2"] = i+1;
Source.Sort="英语 DESC";
for(int i=0; i < Source.Count ; i++)
Source[i]["名次3"] = i+1;
DataGrid1.DataSource=Source;
DataGrid1.DataBind(); 问题解决了多谢思归大哥,但怎么让名次1这列显示在语文前面,名次2列显示在英语前呢,新加这三列都显示在后面,还有就是现在默认是名次3 英语的显示顺序为1,2,3,4,5,如果要改为语文按这个顺序显示呢,我初学者,还请帮忙,谢谢!
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"名次3") %>
<%# DataBinder.Eval(Container.DataItem,"英语") %>
</ItemTemplate>
</asp:TemplateColumn>