【问题标题】:Specified cast is not valid for the date picker指定的演员对日期选择器无效
【发布时间】:2012-09-20 09:35:51
【问题描述】:

我尝试在评估我的选择器中的日期之前检查 null,因为我不允许输入任何日期:

 <telerik:RadDatePicker ID="rpick_to_date" runat="server" Visible="false" SelectedDate='<%# Eval("to_date") == null ? "" : Eval("to_date") %>'>
                                            <Calendar UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False" ViewSelectorText="x">
                                            </Calendar>
                                            <DatePopupButton HoverImageUrl="" ImageUrl="" />
                                            <DateInput DateFormat="dd/MM/yyyy" DisplayDateFormat="dd/MM/yyyy">
                                            </DateInput>
 </telerik:RadDatePicker>

但我一直收到以下错误:

指定的转换无效。

【问题讨论】:

  • 什么是to_date?它是可以为空的日期时间还是...?
  • 它是 nullable 日期 informix 数据库
  • 摆脱内联的 Eval 代码,开始使用一些硬编码的字符串,看看哪些可以和哪些不能转换为“SelectedDate”。这可能是它不接受 string.empty 或者它可能是,正如@simonlchilds 所提到的,您正在尝试评估一个不可为空的日期时间是否为空并且可能不喜欢它。可能只是“to_date”的值不是可接受的日期格式?
  • 也许你需要改用DbSelectedDate
  • @just_name 添加为答案 :) ...

标签: c# asp.net telerik nullable informix


【解决方案1】:

我相信您应该使用DbSelectedDate 属性而不是SelectedDate 来绑定值

使用 DbSelectedDate 属性而不是 SelectedDate 来获取或设置 以数据库友好的方式显示 RadDatePicker 的日期内容。唯一的 与 SelectedDate 的区别在于,如果 新值为 null 或 DBNull。设置空值将在内部 将 SelectedDate 恢复为空值,即输入值将 为空。

From here

【讨论】:

    【解决方案2】:

    您可以使用此代码(删除字符串“”) - SelectedDateNullable&lt;DateTime&gt;

    SelectedDate='<%# Eval("to_date")%>'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多