ASPxGridView - 日期格式问题

时间:2011-05-17 07:09:52

标签: asp.net aspxgridview

我遇到了与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 Type。

在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作为上面的代码时,它给了我“以非正确的DateTime格式输入字符串”

的错误

你能告诉我这个的原因以及解决问题的方法。

1 个答案:

答案 0 :(得分:1)

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

<PropertiesComboBox ... ValueType="System.DateTime"></PropertiesComboBox>