我遇到了与 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 时,它给了我错误“输入字符串的日期时间格式不正确”
你能告诉我造成这种情况的原因以及我可以解决我的问题的方法吗?