当前位置:编程学习 > C#/ASP.NET >>

gridview只能对个位数进行排序



我尝试了N遍,gridview中的自动排序功能只能对一位数进行从小到大排序,若是出现了两位,就默认先去排第一位再去排第二位,请问这可如何是好啊?这样的排序完全是添乱啊!!!不知道哪里出了问题。。。。。 gridview 排序 --------------------编程问答-------------------- 你绑定的类型是string类型的吧。换成int类型就可以了 --------------------编程问答--------------------
引用 1 楼 nanbaifeiliao 的回复:
你绑定的类型是string类型的吧。换成int类型就可以了


还是不行啊


List<DataRow> row = e.Data.GetData(typeof(List<DataRow>)) as List<DataRow>;
            if (row != null && table_GL != null)
            {
                if (row.Count > 0)
                {
                    for (int i = 0; i < row.Count; i++)
                    {
                        DataRow dr = table_View.NewRow();
                        
                        dr["设备名称"] = row[i][0];
                    //    dr["序号"] = row[i][1];
                        dr["序号"] = Int32.Parse(row[i][1].ToString()); 
                        table_View.Rows.Add(dr);
                        
                    }
                }

--------------------编程问答-------------------- 定义datatable的时候,列的类型设为数字型 --------------------编程问答--------------------
引用 3 楼 nanbaifeiliao 的回复:
定义datatable的时候,列的类型设为数字型


怎么设置啊亲 --------------------编程问答-------------------- 你先看看DataRow  数据的排列情况!可能数据在还没绑定gridview 控件的时候排序就不正确! --------------------编程问答--------------------
引用 4 楼 dth886 的回复:
Quote: 引用 3 楼 nanbaifeiliao 的回复:

定义datatable的时候,列的类型设为数字型


怎么设置啊亲


dt.Columns.Add(new System.Data.DataColumn("xxx", typeof(Int32)));
--------------------编程问答--------------------
引用 3 楼 nanbaifeiliao 的回复:
定义datatable的时候,列的类型设为数字型



table_View.Columns.Add("序号", typeof(int));


搞定 哈哈
--------------------编程问答--------------------
引用 3 楼 nanbaifeiliao 的回复:
定义datatable的时候,列的类型设为数字型


可以正常排序了,可是字段里面多出了好多空格啊,用trim()也无法去掉,怎么办啊? --------------------编程问答--------------------
引用 6 楼 zxz414644665 的回复:
Quote: 引用 4 楼 dth886 的回复:

Quote: 引用 3 楼 nanbaifeiliao 的回复:

定义datatable的时候,列的类型设为数字型


怎么设置啊亲


dt.Columns.Add(new System.Data.DataColumn("xxx", typeof(Int32)));


gridview里多出好多空格,用trim()也无法去掉 --------------------编程问答--------------------
引用 9 楼 dth886 的回复:
Quote: 引用 6 楼 zxz414644665 的回复:

Quote: 引用 4 楼 dth886 的回复:

Quote: 引用 3 楼 nanbaifeiliao 的回复:

定义datatable的时候,列的类型设为数字型


怎么设置啊亲


dt.Columns.Add(new System.Data.DataColumn("xxx", typeof(Int32)));


gridview里多出好多空格,用trim()也无法去掉

你不是用你的代码弄好了吗? 怎么多出空格是什么意思?
--------------------编程问答--------------------
引用 10 楼 zxz414644665 的回复:
Quote: 引用 9 楼 dth886 的回复:

Quote: 引用 6 楼 zxz414644665 的回复:

Quote: 引用 4 楼 dth886 的回复:

Quote: 引用 3 楼 nanbaifeiliao 的回复:

定义datatable的时候,列的类型设为数字型


怎么设置啊亲


dt.Columns.Add(new System.Data.DataColumn("xxx", typeof(Int32)));


gridview里多出好多空格,用trim()也无法去掉

你不是用你的代码弄好了吗? 怎么多出空格是什么意思?


你可以看一下7楼的截图,序号那一列中每一行前都有空格 --------------------编程问答-------------------- 你确定是空格?还是\t或者\r\n,\0等看不见的字符! --------------------编程问答--------------------
引用 12 楼 porenasckx 的回复:
你确定是空格?还是\t或者\r\n,\0等看不见的字符!

那如何去除呢? --------------------编程问答--------------------
引用 11 楼 dth886 的回复:
Quote: 引用 10 楼 zxz414644665 的回复:

Quote: 引用 9 楼 dth886 的回复:

Quote: 引用 6 楼 zxz414644665 的回复:

Quote: 引用 4 楼 dth886 的回复:

Quote: 引用 3 楼 nanbaifeiliao 的回复:

定义datatable的时候,列的类型设为数字型


怎么设置啊亲


dt.Columns.Add(new System.Data.DataColumn("xxx", typeof(Int32)));


gridview里多出好多空格,用trim()也无法去掉

你不是用你的代码弄好了吗? 怎么多出空格是什么意思?


你可以看一下7楼的截图,序号那一列中每一行前都有空格


你debug一下看看最终赋值给gridview里面的数据id列的值,看看到底是什么。 --------------------编程问答--------------------
引用 14 楼 zxz414644665 的回复:
Quote: 引用 11 楼 dth886 的回复:

Quote: 引用 10 楼 zxz414644665 的回复:

Quote: 引用 9 楼 dth886 的回复:

Quote: 引用 6 楼 zxz414644665 的回复:

Quote: 引用 4 楼 dth886 的回复:

Quote: 引用 3 楼 nanbaifeiliao 的回复:

定义datatable的时候,列的类型设为数字型


怎么设置啊亲


dt.Columns.Add(new System.Data.DataColumn("xxx", typeof(Int32)));


gridview里多出好多空格,用trim()也无法去掉

你不是用你的代码弄好了吗? 怎么多出空格是什么意思?


你可以看一下7楼的截图,序号那一列中每一行前都有空格


你debug一下看看最终赋值给gridview里面的数据id列的值,看看到底是什么。


值前面都有一个/t --------------------编程问答-------------------- 这个/t是怎么来的,找找源头,然后解决问题 --------------------编程问答-------------------- gridview里面,如果绑定的数据是int,decimal等数值类型的话,默认是会靠右显示的。如果想要靠左显示的话,就要在grid的属性里面设置。还有/t的话你最好找一下是怎么出现的,然后再找解决方法。 --------------------编程问答--------------------
引用 17 楼 nanbaifeiliao 的回复:
gridview里面,如果绑定的数据是int,decimal等数值类型的话,默认是会靠右显示的。如果想要靠左显示的话,就要在grid的属性里面设置。还有/t的话你最好找一下是怎么出现的,然后再找解决方法。

devexpress用多了,刚刚发现微软的控键不是这样的,默认的都是左对齐 --------------------编程问答-------------------- 在list里面排序 利用 IComparer

public class LotAtt10Comparer : IComparer
{
public int Compare(string x, string y)
{
if (x == null)
{
if (y == null)
{
// If x is null and y is null, they're
// equal. 
return 0;
}
else
{
// If x is null and y is not null, y
// is greater. 
return -1;
}
}
else
{
// If x is not null...
//
if (y == null)
// ...and y is null, x is greater.
{
return 1;
}
else
{
// ...and y is not null, compare the 
// lengths of the two strings.
//
int retval = x.Length.CompareTo(y.Length);

if (retval != 0)
{
// If the strings are not of equal length,
// the longer string is greater.
//
return retval;
}
else
{
// If the strings are of equal length,
// sort them with ordinary string comparison.
//
return x.CompareTo(y);
}
}
}
}
}

使用方法
LotAtt10Comparer  comparer=new LotAtt10Comparer();
row.Add(str.LotAtt10); row.Sort(comparer); --------------------编程问答-------------------- 除
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,