Kendo 内联编辑的网格日期开始和结束日期

Kendo grid date from and date until when inline editing

我有这个 kendo 网格。对于 dateFromdateUntil 列,当我编辑从今天开始的过去日期时,我可以看到灰色值的日期吗?目前,当我编辑过去的日期时,该字段将变为空。

DEMO IN DOJO 代码太长,无法显示。

希望Updated Dojo这会有所帮助。

我假设你只希望将控件的 min date 设置在 current day 之前,如果已经存在一个值并且不应该创建新记录的话能够 select current date.

之前的日期

我所做的就是在 kendoDateFrom 函数中添加一个条件,以检查该字段中的日期是否在 presentDate 变量之前,如果是,则设置 min 值控件到此日期为您服务。我还添加了一个新条目的检查,并检查该值是否未定义以将其设置为您的当前日期。

if(options.model[options.field] != undefined && 
 kendo.parseDate(options.model[options.field], "MM/dd/yyyy") < presentDate){
    presentDate = options.model[options.field]; 
  }
  else 
  {
    presentDate = new Date(); 
  }

如果您的要求不同,请在问题中提供更多信息以帮助满足您的要求。

编辑 因此,根据您更新后的要求,我已将 dojo 更新为您想要的内容。

Modified Dojo

我调整了 dojo 来为您解决几个问题。

  1. 添加了一个新的 currentMinDate 变量,它将用作我们的最小日期检查。
  2. 更改了最小日期检查以解决日期的随机 blanking
  3. 当日期在过去时 enable 该日期但禁用该日期和当前日期之间的所有日期(假设如果需要更改日期,您希望发生这种情况。
  4. 添加了 parseFormats 设置以确保它可以解析您提供的日期格式。
  5. 扩展了您的数据源,以便更新按钮将更改保存到本地数组。

禁用日期函数做了几件事:

  1. 检查传入的日期是空值还是日期
  2. 检查传入的日期是否小于当前日期
  3. 检查传入的日期是否不等于当前的最小日期

如果它将所有这些都解析为真,那么它会禁用日期,因此它不能被 selected,重要的是它确保它不会禁用当前的 selected 日期就这样过去吧select吧。如果该日期也被禁用,那么它将能够 select 禁用日期,因为它被视为无效。

disableDates:function(date){
      console.log('disabling dates function, current passed Date::::', date); 
      console.log(date == currentMinDate, date, currentMinDate); 
      if(date && date.getDate() < presentDate.getDate() && 
         date.getDate() != currentMinDate.getDate())
      {
        console.log(date,currentMinDate,  'disabled'); 
        return true;
      }
      else 
      {
        console.log(date,currentMinDate,  'not disabled'); 
        return false; 
      }
      
    },

我已经留下了我的评论声明,这样你就可以看到发生了什么。

希望这对您有所帮助。