【发布时间】:2020-10-12 00:40:15
【问题描述】:
我有这个剑道网格。对于dateFrom 和dateUntil 列,当我从今天开始编辑过去的日期时,我可以看到灰色值的日期吗?目前,当我编辑过去的日期时,该字段将变为空。
DEMO IN DOJO 代码太长,这里无法显示。
【问题讨论】:
标签: kendo-ui kendo-grid
我有这个剑道网格。对于dateFrom 和dateUntil 列,当我从今天开始编辑过去的日期时,我可以看到灰色值的日期吗?目前,当我编辑过去的日期时,该字段将变为空。
DEMO IN DOJO 代码太长,这里无法显示。
【问题讨论】:
标签: kendo-ui kendo-grid
希望Updated Dojo 这会有所帮助。
我假设您只希望控件的min date 设置在current day 之前,前提是已经存在一个值并且新记录不应该能够选择之前的日期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();
}
如果您的要求不同,请在问题中提供更多信息以帮助满足您的要求。
编辑 因此,根据您更新的要求,我已将道场更新为我认为您想要的。
我已经调整了道场来为你解决几个问题。
currentMinDate 变量,它将用作我们的最小日期检查。blanking 日期。enable 该日期但禁用该日期和当前日期之间的所有日期(假设这是您希望在需要更改日期时发生的情况。parseFormats 设置以确保它可以解析您提供的日期格式。禁用日期功能做了几件事:
如果它将所有这些解析为 true,则它会禁用日期,因此无法选择它,重要的是它确保它不会禁用过去当前选择的日期,因此它将选择它。如果该日期也被禁用,那么它将能够选择禁用日期,因为它被视为无效。
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;
}
},
我已将我的评论声明留在其中,以便您查看发生了什么。
希望现在对您有所帮助。
【讨论】:
presentDate 编辑past date,如果日期已经过了今天的日期,只能在禁用模式下显示日期,但我仍然可以从今天开始更新日期。另外,我在您的演示中发现了一些奇怪的东西,例如,如果我一次又一次地单击edit 和cancel 按钮,我注意到有时日期显示为空值(它只发生在past date)。
Data A 时,我可以看到 dateFrom 和 dateUntil。由于日期控制,目前它显示为空白。
minDate 的目的是什么。为什么要禁用某个日期之前的日期,无论是过去的(已输入的日期)还是当前日期的新记录?新记录第一次添加时可以有past date吗?
minDate 设置。这意味着它只能向前添加presentDate。 (2)。我无法编辑从presentDate 过去的要求日期。但它可以在禁用模式下显示。另外,选择presentDate 之后仍然允许它进行任何更改。