我的webform中有2个DateEDit控件:StartDate和EndDate 我想验证当EndDate更改时,它不会比StartDate更早。此外,我想验证当StartDate更改时,EndDate将使用StartDate的值+ 1天重置。
我设法激活AutoPostBack,但似乎不太好......没有它,事件DateChanged不会触发。
<td><dx:ASPxLabel ID="lbl_StarDate" runat="server" Text="Start Date:" Font-Bold="True" Visible="True">
</dx:ASPxLabel></td>
<td><dx:ASPxDateEdit ID="de_StartDate" runat="server" Height="19px" Width="240px"></dx:ASPxDateEdit></td>
</tr>
<tr>
<td><dx:ASPxLabel ID="lbl_EndDate" runat="server" Text="End Date:" Font-Bold="True" Visible="True">
</dx:ASPxLabel></td>
<td><dx:ASPxDateEdit ID="de_EndDate" runat="server" Height="17px" Width="220px"></dx:ASPxDateEdit></td>
你可以帮我解决这个问题吗?
答案 0 :(得分:1)
这一切都可以在javascript中完成。要触发javascript事件,请将您的aspx更改为以下内容:
<tr>
<td>
<dx:ASPxLabel ID="lbl_StarDate" runat="server" Text="Start Date:" Font-Bold="True"
Visible="True" />
</td>
<td>
<dx:ASPxDateEdit ID="de_StartDate" ClientInstanceName="de_StartDate" runat="server"
Height="19px" Width="240px">
<ClientSideEvents ValueChanged="OnStartDateChanged" />
</dx:ASPxDateEdit>
</td>
</tr>
<tr>
<td>
<dx:ASPxLabel ID="lbl_EndDate" runat="server" Text="End Date:" Font-Bold="True" Visible="True" />
</td>
<td>
<dx:ASPxDateEdit ID="de_EndDate" runat="server" Height="17px" Width="220px">
<ClientSideEvents ValueChanged="OnEndDateChanged" />
</dx:ASPxDateEdit>
</td>
</tr>
然后在相应的方法中处理javascript:
<script type="text/javascript">
function OnStartDateChanged(s, e) {
//code here
}
function OnEndDateChanged(s, e) {
//code here
}
</script>
答案 1 :(得分:0)
你应该使用
de_Endate.minDate=de_StartDate.date;
在de_startDate的更改事件
中有关更多信息,请查看documnetation
http://documentation.devexpress.com/#AspNet/DevExpressWebASPxEditorsASPxDateEdit_MinDatetopic