按DataType格式化GridView列

时间:2013-07-19 16:59:13

标签: c# winforms

您好我正在开发一个小型winforms应用程序,我更像是一个Web开发人员,请原谅我这里的任何无知。

基本上我有一堆网格视图,我从背后的代码绑定,如:

        var con = new SelectOrdersLineItemByOrder() { ConnectionString = ConStr, fk_OrderID = Id };
        DataSet ds = con.ExecuteDataSet();
        gvVendors.DataSource = ds.Tables[0];

目前我正在格式化列:

        gvVendors.Columns[5].FormatString = "{0:dd/MM/yyyy}";

由于缺乏一个更好的词,这是一个痛苦的屁股!!!

有没有办法挂钩事件处理程序或在事后迭代并说出如下内容:

        foreach (column c in gvVendors)
        {
            if(c is DateTime) { Format Accordingly ... }
            if(c is Decimal) { Format Accordingly ... }
        }            

非常感谢任何帮助...

1 个答案:

答案 0 :(得分:1)

您可以简单地编写自己的方法,例如FormatGrid(),它为您执行所有格式化,并在为其分配数据源后调用它。像

     var con = new SelectOrdersLineItemByOrder() { ConnectionString = ConStr, fk_OrderID = Id };
    DataSet ds = con.ExecuteDataSet();
    gvVendors.DataSource = ds.Tables[0];
    FormatGrid();

您可以使用以下属性设置格式。

DataGridViewCellStyle.Format

无需遍历列。您知道列名称,它们不会动态更改,只是

   dataGridView1.Columns["YourColumnName"]

应该足够了。