Ext.Net GridPanel 日期列更改默认值

Ext.Net GridPanel Date Column change default value

我用的是ext.net2.4版本。网格上有一个日期列,我可以更改此列。网格由 sql 服务器填充。我的问题是:如果日期列为空(实际上该列不为空,sql 服务器端有默认值 0100)我的网格在网格上显示 01/01/1900。我想要网格是空的。我做到了,当我的 class 填充网格时,我设置了列属性 Datetime.minvalue。是的,我确实列是空的,但我无法更改该列,给了我一条错误消息。

所以如果日期 01/01/1900 我不想看到日期,我想看到空的和?想要更改空列。你能帮帮我吗

我的class:

   [Column]
        public DateTime DeliveryDate
        {
            get
            {
                return this.deliveryDate == Convert.ToDateTime("01/01/1900")
                   ? DateTime.MinValue
                   : this.deliveryDate.Value;
            }

            set { this.deliveryDate = value; }
        }
<ext:DateColumn runat="server" Text="Servis Teslim Tarihi" DataIndex="DeliveryDate" Format="dd.MM.yyyy">
                                            <Editor>
                                                <ext:DateField runat="server" Format="dd.MM.yyyy"/>
                                            </Editor>
                                        </ext:DateColumn>

错误消息:

状态码:200

System.Exception: Unexpected token parsing date. Expected String, got Null. at Ext.Net.JSONDateTimeJsonConverter.ReadJson(JsonRea der reader, Type objectType, Object existingValue, JsonSerializer serializer) at Newtonsoft.Json.Serialization.JsonSerializerIntern alReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerIntern alReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal (JsonReader reader, Type objectType) at Newtonsoft.Json.JsonSerializer.Deserialize(JsonRea der reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(Stri ng value, Type type, JsonSerializerSettings settings) at Ext.Net.JSON.Deserialize(String value, Type type, JsonSerializerSettings settings) at Ext.Net.JSON.Deserialize(String value, Type type, IList`1 converters, IContractResolver resolver) at Ext.Net.JSON.Deserialize(String value, Type type) at Ext.Net.DirectMethod.Invoke(Object target, HttpContext context, ParameterCollection args) at Ext.Net.DirectMethod.Invoke(Object target, ParameterCollection args) at Ext.Net.ResourceManager.RaisePostBackEvent(String eventArgument)

你可以像这样使用列渲染器,

    <ext:DateColumn runat="server" Text="Servis Teslim Tarihi" DataIndex="DeliveryDate"
 Format="dd.MM.yyyy">
     <Renderer Fn="myRenderer" />
    <Editor>
    <ext:DateField runat="server" Format="dd.MM.yyyy"/>
     </Editor>
  </ext:DateColumn>

和脚本;

<script type="text/javascript">
    var myRenderer = function(value, metadata, record) {
       if(value==='01/01/1900')
        return "";
    }
</script>

Sakir,谢谢你的帮助。那对我来说是工作。我的代码上次更新:

 var BeforeEdit = function (editor, e)
        {
 
            if (DateFormat(e.value) == '01.01.1900') {
                e.value = '';
            }
          
   var DateFormat = function (date)
        {
            var curr_date = date.getDate().toString();
            curr_date = curr_date.length > 1 ? curr_date : '0' + curr_date;

            var curr_month = (1 + date.getMonth()).toString();
            curr_month = curr_month.length > 1 ? curr_month : '0' + curr_month;
            var curr_year = date.getFullYear();

            return curr_date + "." + curr_month
            + "." + curr_year;
        }
   
    var myRenderer = function (value, metadata, record) {
            if (DateFormat(value) == '01.01.1900') {
                return "";
            }
            else
                return DateFormat(value);
        }
 <ext:CellEditing ID="CellEditing1" runat="server">
                                        <Listeners>
                                            <BeforeEdit Fn="BeforeEdit"/>
                                            <Edit Fn="edit" />
                                        </Listeners>
                                    </ext:CellEditing>