ASPxGridView 模糊过滤 查询(二)

DataBinder.Eval()格式化绑定的相关补充

过滤的时候经常遇到数字比大小这类的,我最近就遇到了这个问题,稍微描述下
既然是数字,数据库里一般都是用的int,long这些类型,我遇到的这个偏偏要用varchar,结果读出来的数据绑定后就认定了它是[字符串]而不是数字,结果就是,无法比较大小,一般这种情况下修改数据库类型就完了,问题是不能修改的时候就麻烦了
 
很多帖子都转帖说用这个转换类型,下面这些就是我转他们的

--------------------------------------------------数据绑定DataBinder.Eval方法--------------------------------------------------------------------------------

<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>

转换类型
Specifier Type Format Output (Passed Double 1.42) Output (Passed Int -12400)
c Currency {0:c} $1.42 -$12,400
d Decimal {0:d} System.FormatException -12400
e Scientific {0:e} 1.420000e+000 -1.240000e+004
f Fixed point {0:f} 1.42 -12400.00
g General {0:g} 1.42 -12400
n Number with commas for thousands {0:n} 1.42 -12,400
r Round trippable {0:r} 1.42 System.FormatException
x Hexadecimal {0:x4} System.FormatException cf90


{0:d} 日期只显示年月日
{0:yyyy-mm-dd} 按格式显示年月日


样式取决于 Web.config 中的设置

{0:c} 或 {0:£0,000.00} 货币样式 标准英国货币样式
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="en-US" />
</system.web>
显示为 £3,000.10

{0:c} 或 string.Format("{0:C}", price); 中国货币样式
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-cn" uiCulture="zh-cn" />
</system.web>
显示为 ¥3,000.10

{0:c} 或 string.Format("{0:C}", price); 美国货币样式
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
显示为 $3,000.10
 
---------------------------------------------------------------其结果是二个字,没用---------------------------------------------------------------------
 
由于我是初学者,想了两天,最后无奈只能用笨办法,自己创建DataSet的Table
第一  DataSet ds = new DataSet();这个必须有,不然没法给ASPxGridView绑数据;
    然后用DataSet.Tables.Add();创建新表
第二  你需要创建列
    Type 数据类型= System.Type.GetType("System.String");这个是创建列用的,里面的String可以改成Double等其他的,只要System下有的
    DataColumn dc= new DataColumn(列名, 数据类型);列肯定是要自己来创建的,列名就是给ASPxGridView绑定数据用的,
    ASPxGridView每个列标签的FieldName属性的值和这个列名必须一致的.
第三  DataSet.Tables[0].Columns的AddRange()或Add()方法将这些列添加到你的表中
第四  用for循环将数据库里的数据添加到我们的表里
    如:
    ds2.Tables[0].Rows.Add(ds.Tables[0].Rows[i]["列名1"],ds.Tables[0].Rows[i]["列名2"])   i 是for循环的变量
最后将我们的dataset绑给GridView就行了
posted @ 2012-11-22 14:45  黑糖玛奇朵  阅读(301)  评论(0编辑  收藏  举报