三个DateField之间的时间限制

      DateField的时间限制的总结:

 1)两个DateField之间的时间限制:例如:DateFieldStartDate为开始时间,DateFieldEndDate为结束时间,结束时间的选择不能在开始时间之前;代码如下:

<ext:Anchor Horizontal="90%">
<ext:DateField runat="server" ID="DateFieldStartDate"
FieldLabel="Assigned<span class='RedStar'>*</span>"
Vtype
="daterange" MaxDate="" meta:resourcekey="DateFieldStartDateResource"
MinDate="" SelectedDate="" AllowBlank="false">
<Listeners>
//注意设定这里的结束时间
<Render Handler="this.endDateField = '#{DateFieldEndDate}';" />
</Listeners>
</ext:DateField>
</ext:Anchor>
<ext:Anchor Horizontal="90%">
<ext:DateField runat="server" ID="DateFieldEndDate"
FieldLabel="Deadline<span class='RedStar'>*</span>"
Vtype
="daterange" MaxDate=""
meta:resourcekey="DateFieldEndDateResource"
MinDate="" SelectedDate="" AllowBlank="false">
<Listeners>
//设定开始时间
<Render Handler="this.startDateField = '#{DateFieldStartDate}'" />
</Listeners>
</ext:DateField>
</ext:Anchor>

 2). 三个DataField之间的时间限制: 例如:DateFieldStartDate为开始时间,DateFieldEndDate为结束时间,DateFieldActualEnd为实际结束时间,代码如下:

代码
//开始时间
<ext:DateField runat="server" ID="DateFieldStartDate" FieldLabel="Assigned"
Width="183px" Vtype="daterange" AllowBlank="false">
<Listeners>
<Focus Handler="startDateSet()" />
</Listeners>
</ext:DateField>

//结束时间
<ext:DateField runat="server" ID="DateFieldEndDate" FieldLabel="Deadline"
Vtype="daterange" Width="183px" AllowBlank="false">
<Listeners>
<Render Handler="this.endDateField = '#{DateFieldActualEnd}'" />
<Focus Handler="endDateSet()" />
</Listeners>
</ext:DateField>

//实际结束时间
<ext:DateField runat="server" ID="DateFieldActualEnd" FieldLabel="Completed"
Width="183px" Vtype="daterange">
<Listeners>
<Render Handler="this.startDateField = '#{DateFieldEndDate}'" />
</Listeners>
</ext:DateField>

js代码:

代码
function startDateSet() {
var lockDate
= new Date(Date.parse("<%= lockTimeString %>".replace(/-/g, "/")));
Ext.getCmp(
"<%=DateFieldStartDate.ClientID %>").setMinValue(lockDate);
Ext.getCmp("<%=DateFieldStartDate.ClientID %>").
setMaxValue(Ext.getCmp("<%=DateFieldEndDate.ClientID %>").getValue());
//Ext.getCmp("<%=DateFieldActualEnd.ClientID %>").setMinValue(start);
}

function endDateSet() {
Ext.getCmp(
"<%=DateFieldEndDate.ClientID %>").
setMinValue(Ext.getCmp("<%=DateFieldStartDate.ClientID %>").getValue());
Ext.getCmp(
"<%=DateFieldEndDate.ClientID %>").
setMaxValue(Ext.getCmp("<%=DateFieldActualEnd.ClientID %>").getValue());
}
原文地址:https://www.cnblogs.com/mystar/p/1797822.html