0

開始日と終了日を比較したい。開始日は終了日よりも前でなければなりません。ページの文化を動的に変更しています。ただし、比較バリデーターは、dd/mm/yyyy 形式でのみ日付を比較します。

これは私が使用したオーバーライド方法です:

 protected override void InitializeCulture()
{
    string datetimeculture = "en-US"; // default lang
    if (Session["datetimeculture"] != null)
    {
        datetimeculture = Session["datetimeculture"].ToString();
    }

    this.UICulture = datetimeculture;
    this.Culture = datetimeculture;
    base.InitializeCulture();
}

これは比較バリデータです

<asp:CompareValidator ID="DateCompare" runat="server" ControlToCompare="txtfaredate_to" 
ControlToValidate="txtfaredate_from" ForeColor="Red" Type="Date" Operator="LessThanEqual" display="Dynamic"
CssClass="failureNotification" ErrorMessage="The Fare Date form must not match the Fare Date to."
ValidationGroup="basic">To Date cannot be less than From Date.</asp:CompareValidator>

これを行う方法はありますか?

ありがとう、

4

2 に答える 2

0

カスタムバリデーターを使用して問題を解決しました。

<asp:CustomValidator ID="DateCompare" runat="server" ControlToValidate="txtfaredate_to" EnableClientScript="true" ForeColor="Red" display="Dynamic"
 ErrorMessage="To Date cannot be less than From Date." ClientValidationFunction="fncClientCheckDate"></asp:CustomValidator>

クライアント側のコード:

 function fncClientCheckDate(sender, args) {
        var todate = dateToYMD(document.getElementById("txtfaredate_to").value);
        var fromdate = dateToYMD(document.getElementById("txtfaredate_from").value);

        if (new Date(todate) < new Date(fromdate))
    {
    args.IsValid = false;
    return;
    }
    args.IsValid = true;
    }
    function dateToYMD(date) {
        var date = new Date(date);
       // alert(date);
        var d = date.getDate();
        var m = date.getMonth() + 1;
        var y = date.getFullYear();
        return '' + y + '-' + (m <= 9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
    }
于 2012-11-28T08:15:54.027 に答える
0

Validator コントロールの ValueToCompare プロパティを設定してみてください。このようなもの:

<asp:CompareValidator ID="DateCompare" runat="server" 
   ControlToCompare="txtfaredate_to" 
   ControlToValidate="txtfaredate_from"
   ValueToCompare="<%# DateTime.Now.ToString(\"dd-MM-yyyy\") %>" //adjust to your needs 
   ForeColor="Red" 
   Type="Date" 
   Operator="LessThanEqual" 
   display="Dynamic"
   CssClass="failureNotification" 
   ErrorMessage="The Fare Date form must not match the Fare Date to."
   ValidationGroup="basic">To Date cannot be less than From Date.
</asp:CompareValidator>
于 2012-11-28T06:44:18.050 に答える