1

我遇到了与 ASPxGridView 中的日期格式相关的问题。

我有一个使用 AspxGridView 的应用程序。我有一列包含日期值的组合框类型。该列是

  < dxwgv:GridViewDataComboBoxColumn Caption="SERVICE MONTH" Name="ServiceMonthComboBox" Visible=true VisibleIndex="1" FieldName="ServiceMonth">
        < EditFormSettings VisibleIndex=1 Visible="false" />< CellStyle HorizontalAlign=Right />
        < PropertiesComboBox Style-Font-Names="Verdana" Style-Font-Size="X-Small" TextField="ServiceMonth" ValueField="ServiceMonth">
                < Style Font-Names="Verdana" Font-Size="X-Small">< /Style>
        < /PropertiesComboBox>< EditFormCaptionStyle ForeColor="Maroon" />
  < /dxwgv:GridViewDataComboBoxColumn>

这里,ServiceMonth 是 DateTime 类型。

在 Page_Load 事件中,我使用以下代码将日期数据与过滤器绑定。

        GridViewDataComboBoxColumn serviceMonthComboBox = CarHireExchangeGroupSummaryGridView.Columns["ServiceMonthComboBox"] as GridViewDataComboBoxColumn;

        serviceMonthComboBox.PropertiesComboBox.ValueType = typeof(DateTime);

        serviceMonthComboBox.PropertiesComboBox.Items.Clear();

        var serviceMonths = (from item in Presenter.CurrentModel.CarHireExchangeGroupSummaryRecords
                             select (item.ServiceMonth)).Distinct();

        foreach (var serviceMonth in serviceMonths)
        {
            serviceMonthComboBox.PropertiesComboBox.Items.Add(serviceMonth.ToString("MM/yyyy").Trim(), serviceMonth.ToString("MM/yyyy"));
        }

在这里,我将该组合框与我记录中所有不同的 ServiceMonth 绑定。

现在,我想要这样,因为用户使用任何 ServiceMonth 过滤记录,那么记录应该得到过滤。为此,我使用了 OnProcessColumnAutoFilter 事件,如下所示:

protected void CarHireExchangeGroupSummaryGridView_OnProcessColumnAutoFilter(object sender, ASPxGridViewAutoFilterEventArgs e)
{
            if (e.Kind == GridViewAutoFilterEventKind.CreateCriteria)
            {
                switch (e.Column.FieldName)
                {

                case "ServiceMonth":
                    if (!string.IsNullOrEmpty(e.Value))
                    {

                        ((OperandValue)((BinaryOperator)e.Criteria).RightOperand).Value = Convert.ToDateTime(e.Value.ToString());
                    }
                    break;
                }
            }
}

现在,我的问题是,我得到的值是这样的:“Wed Dec 1 00:00:00 CST 2010”,现在,当我尝试将其转换为 DateTime 时,它​​给了我错误“输入字符串的日期时间格式不正确”

你能告诉我造成这种情况的原因以及我可以解决我的问题的方法吗?

4

1 回答 1

1

尝试将 PropertiesComboBox.ValueType 设置为 System.DateTime 以强制 AutoFilterRow 的 ASPxComboBox 编辑器将其 Item 的 Value 转换为 DateTime 值:

<PropertiesComboBox ... ValueType="System.DateTime"></PropertiesComboBox>
于 2011-05-18T20:12:15.377 回答