C# 按数据类型格式化GridView列
嗨,我正在开发一个小型winforms应用程序,我更像是一个web开发人员,所以请原谅我的无知 基本上,我有一堆GridView,我是从代码背后绑定的,比如:C# 按数据类型格式化GridView列,c#,winforms,C#,Winforms,嗨,我正在开发一个小型winforms应用程序,我更像是一个web开发人员,所以请原谅我的无知 基本上,我有一堆GridView,我是从代码背后绑定的,比如: var con = new SelectOrdersLineItemByOrder() { ConnectionString = ConStr, fk_OrderID = Id }; DataSet ds = con.ExecuteDataSet(); gvVendors.DataSourc
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 ... }
}
非常感谢您的帮助……您只需编写一个自己的方法,如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"]
应该足够了。你就快到了。迭代列,GridViewWhat命名空间上必须有某种格式属性
gvVendors
?@DourHighArch这是GridViewWhat命名空间;至少有4个名为“GridView”的不同类。System.Windows.Controls.GridView.Columns
的迭代器是System.Windows.Controls.GridViewColumn
,不能是DateTime
或任何其他类型,所以我不明白你发布的内容是如何编译的。@DourHighArch System.Windows.Forms.datagridview我知道这基本上就是我目前正在做的事情。我希望迭代列(因为在多个实例中有allot),并拥有一个全局函数,该函数根据列数据类型而不是硬编码的列名进行格式化then@bumble_bee_tuna类似dataGridView1.Columns[“YourColumnName”].ValueType=typeof(DateTime);