数据库中这个price字段是varchar的,用来记录这个产品的几种价格。
例如“2400|4500|263|”这样的
现在将这个字段绑定在DataGrid中。
页面上要将默认取出的第一个价格排序。
因为字段是string的,我现在排序后都是按字符来排的。我需要按数据的大小来排。如何实现?
请高手帮忙。我自己想了一下。在datatable中增加了一列,类型为System.Double
然后在DataGrid1_ItemDataBound中将价格读出来,再赋给这一列。
我是这样做的。可是写不进去。
if (e.Item.ItemIndex>=0)
{
string[] _price;
string price =e.Item.Cells[6].Text;
_price = price.Split(new Char [] {'|'});
if(_price.Length > 0 )
{
e.Item.Cells[12].txt = Convert.ToDouble(_price[0]);
}
}请高手指教,或者有没有其它好的方法?
例如“2400|4500|263|”这样的
现在将这个字段绑定在DataGrid中。
页面上要将默认取出的第一个价格排序。
因为字段是string的,我现在排序后都是按字符来排的。我需要按数据的大小来排。如何实现?
请高手帮忙。我自己想了一下。在datatable中增加了一列,类型为System.Double
然后在DataGrid1_ItemDataBound中将价格读出来,再赋给这一列。
我是这样做的。可是写不进去。
if (e.Item.ItemIndex>=0)
{
string[] _price;
string price =e.Item.Cells[6].Text;
_price = price.Split(new Char [] {'|'});
if(_price.Length > 0 )
{
e.Item.Cells[12].txt = Convert.ToDouble(_price[0]);
}
}请高手指教,或者有没有其它好的方法?
可以定义一个数组,然后用Split方法把2400 ¦4500 ¦263 ¦分割再赋值到数组里
数组就会有这3个值了,然后再循环数组排序就可以了
这样应该可以吧?
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Cells[12].Text = e.Item.Cells[12].Text.Substring(0, e.Item.Cells[12].Text.IndexOf('|'));
}
}
1."price字段是记录这个产品的几种价格,页面上要将默认取出的第一个价格排序",您并没说明是取第一个价格来显示没实现,还是排序功能没实现;
2.关于排序,您也没说清楚是在"2400|4500|263|"里对这三个数字排序呢还是对所有记录的已取出的第一个价格排序,现在我才知道您指的是后者,所以从一开始的思路就不对了;
3.要实现按price的排序应该从数据源着手,而不是等绑定完了在去考虑排序,建一视图或存储过程,新加一字段只取price字段的第一个数值,排序时按照这个新字段排即可