Click here to Skip to main content
15,881,413 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi,
PlZz Help me any one.
Here my problem is I want two date filed as “From” and “To”. “From” must me with is 7 days before today (if today is 6th feb 2015 it accepts only 31st jan 2015 to 6th feb 2015) and “To” date must be today or yesterday (5th feb 2015 or 6th feb 2015).
If I select yesterday(5th feb 2015) on “To” date the maximam value of “From” date becomes yesterday,( i.e the range is 31st jan 2015 to 5th feb 2015).
Here I done by using Ajax Calendarextender and range validate but problem come here is date formate shown in fields (“From” and “To”) must be in dd/MM/yyyy. I done in MM/dd/yyyy. If I change the formate in range validate from MM/dd/yyyy to dd/MM/yyyy it is showing error. I want error massages also showing appropriate (Like “From date must be within 7 days before today”, “To date must be Today or yesterday”, “You selected To date as yesterday so To date not more than yesterday”).
I don’t want to change culture of page. And Page must not refresh every selection. I want it any way (Ajax or JavaScript or JQuery or anyway) using c#.net.
My requirement is date format must be dd/MM/yyyy and they show appropriate errors.

XML
.Aspx:-
~~~~~~
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">

</script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ajx:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </ajx:ToolkitScriptManager>
        <asp:Label ID="Label1" runat="server" Text="From"></asp:Label>
        <asp:TextBox ID="TextBox1" runat="server" ReadOnly="true"></asp:TextBox>
        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="01.png" ImageAlign="Bottom"/>
        <asp:RangeValidator ID="RangeValidator1" ValidationGroup="datevalid" runat="server" ErrorMessage="Please select with in range before 7 days from today" Type="Date" ControlToValidate="TextBox1" Display="Dynamic"></asp:RangeValidator>
    <ajx:calendarextender ID="Calendarextender1" PopupButtonID="ImageButton1" TargetControlID="TextBox1" Format="MM/dd/yyyy" runat="server"></ajx:calendarextender>
    <asp:Label ID="Label2" runat="server" Text="To"></asp:Label>
    <asp:TextBox ID="TextBox2" runat="server" ReadOnly="true"></asp:TextBox>
        <asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="01.png" ImageAlign="Bottom"/>
        <asp:RangeValidator ID="RangeValidator2" ValidationGroup="datevalid" runat="server" Type="Date" ErrorMessage="date must be yesterday or today" ControlToValidate="TextBox2" Display="Dynamic"></asp:RangeValidator>
        <ajx:calendarextender ID="Calendarextender2" PopupButtonID="ImageButton2" TargetControlID="TextBox2" Format="MM/dd/yyyy" runat="server"></ajx:calendarextender>
        <br/>
        <asp:CompareValidator ID="CompareValidator1" runat="server" Type="Date" ErrorMessage="From Date mustbe lessthan yesterday"  ControlToCompare="TextBox2" ControlToValidate="TextBox1" Operator="LessThanEqual"></asp:CompareValidator>
    </div>
    </form>
</body>
</html>


.CS:-
~~~~~
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (IsPostBack)
        {

        }
    }

    protected void datevalid(object sender, EventArgs e)
    {


    }
    protected void Page_PreRender(object sender, EventArgs e)
    {
        DateTime d1 = DateTime.Today;
        DateTime d2 = DateTime.Today.Date.AddDays(-6);
        DateTime d3 = DateTime.Today.Date.AddDays(-1);

        RangeValidator1.MaximumValue = d1.ToString("MM-dd-yyyy");
        RangeValidator1.MinimumValue = d2.ToString("MM-dd-yyyy");
        RangeValidator2.MaximumValue = d1.ToString("MM-dd-yyyy");
        RangeValidator2.MinimumValue = d3.ToString("MM-dd-yyyy");
    }
}
Posted

1 solution

I found answer to this.

http://forums.asp.net/t/2033949.aspx?asp+net+Validating+two+date+fields+when+1st+must+be+within+7days+before+today+2nd+is+today+or+yesterday
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900