如何在repositoryitem组合框上设置格式化日期时间?

时间:2016-08-26 02:19:56

标签: c# winforms date gridview format

如何在gridview列中获取格式时间以在我的存储库中设置它? 数据库中的日期使用date time,返回8/1/2016 12:00:00 AM的输出 我用这种方法设置了一个网格列

    private void arrange()
    {

        gridView1.Columns["date"].VisibleIndex = 1;
        gridView1.Columns["date"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
        gridView1.Columns["date"].DisplayFormat.FormatString = "dd MMM yyyy";
        gridView1.Columns["date"].format.FormatString = "dd MMM yyyy";

        gridView1.Columns["date"].Width = 150;
    }

日期网格列上的显示为

enter image description here

问题是当我在过滤器行上使用存储库项时,它仍然从数据库8/1/2016 12:00:00 AM获取日期格式。图像是这样的

enter image description here

将项目添加到存储库组合框中的代码是

    RepositoryItemComboBox repositoryItemComboBox2 = new RepositoryItemComboBox();

    private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
    {
        GridView view = sender as GridView;
        for (int i = 0; i < gridView1.RowCount; i++)
        {
            if (gridView1.GetDataRow(i) == null)
            {
                break;
            }
        string txt = gridView1.GetDataRow(i)["date"].ToString();
        if (!repositoryItemComboBox2.Items.Contains(txt))
            {                    
                repositoryItemComboBox2.Items.Add(txt);
            }
        }

        if (e.Column.FieldName == "date" && view.IsFilterRow(e.RowHandle))
            { e.RepositoryItem = repositoryItemComboBox2;

            repositoryItemComboBox2.Sorted = true;

            }
     }

我想,如何解决这个问题是:

  1. 如何真正转换日期列,而不是显示文字
  2. 格式化日期列
  3. 格式化存储库itemcombobox
  4. 使用原始格式,但在存储库itembox上更改显示文本与我在列日期的操作方式相同
  5. 你的建议
  6. n.b:iam使用devexpress

2 个答案:

答案 0 :(得分:0)

更改repositoryItem的显示格式和编辑格式

 repositoryItemComboBox1.DisplayFormat.FormatString = "dd MMM yyyy";
 repositoryItemComboBox1.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
 repositoryItemComboBox1.EditFormat.FormatString = "dd MM yyyy";
 repositoryItemComboBox1.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;

答案 1 :(得分:0)

更改

string txt = gridView1.GetDataRow(i)["date"].ToString();

string txt = Convert.ToDateTime(gridView1.GetDataRow(i)["date"].ToString()).Date.ToString("dd MMM yyyy");

我测试的代码......

List<String> str = new List<String>();
str.Add("2016-08-01 12:00:00 AM");
str.Add("2016-08-02 12:00:00 AM");
str.Add("2016-08-03 12:00:00 AM");
str.Add("2016-08-04 12:00:00 AM");
str.Add("2016-08-05 12:00:00 AM");
str.Add("2016-08-06 12:00:00 AM");
str.Add("2016-08-07 12:00:00 AM");
str.Add("2016-08-08 12:00:00 AM");
str.Add("2016-08-09 12:00:00 AM");


foreach (var item in str)
{
  repositoryItemComboBox1.Items.Add(Convert.ToDateTime(item).Date.ToString("dd MMM yyyy"));
}

enter image description here