Sometime ago I saw an interesting question in asp.net forum. It raised my enthusiasm. I started to code the requirement. And I found one. Here goes the requirement:
Hi!
I have two text boxes inside my aspx page: a) the "txt1" and b) the "txt2". Both text boxes have CalendarExtender controls attached:
a) the txt1 has the "CalendarExtender1"
b) the txt2 has the"CalendarExtender2".
All I want is this:
Using client-side script (or other method without postbacks), I want when the user chooses a date from CalendarExtender1, the same date plus a day front to go to the txt2.
For example:
If the user chooses 03/28/2009 in the CalendarExtender1, I want the value of the txt2 to be the 03/29/2009....
Also, if the month reaches the end, I want the txt2 to take the new moth.
For example:
If the user chooses 03/31/2009 in the CalendarExtender1, I want the value of the txt2 to be the 04/01/2009....
That behavior I want to exists only to the CalendarExtender1 like I describe it. I don't want the user to be able to do this with CalendarExtender2 (the CalendarExtender2 has the default behavior)...
How can I accomplish that? Thank you very much!
There are two solutions provided to this requirement. Let me put them here.
Solution1: (By Kinjalin)
Here you have to add it in Javascript.
<cc1:CalendarExtender ID="ClExFromDt" runat="server" TargetControlID="TxtFromDate" PopupButtonID="BtnFromCal" Format="dd/MM/yyyy" OnClientDateSelectionChanged="AddDate" CssClass="calExt_Theme1"></cc1:CalendarExtender>
Here on OnBlur, write a Javascript function addDate
on Page_Load write the line " Text1.Attributes.Add("onblur", "javascript:addDate();")
& in Javascript Fetch the Value using document.getElementByID("TextBox1").value
add it using below Javascript & bit of ur Logic
//create the date
var myDate = new Date();
//add a day to the date
myDate.setDate(myDate.getDate() + 1);
//add a week
myDate.setDate(myDate.getDate() + 7);
After adding Show it in your TextBox2
$get(TextBox2).value = myDate
Thats it.
Solution2: (By sangam100)
Hi MinimalTech ,
Here goes the prototype, which is close to what kinjalin posted:
Add this script in the design page:
<script>
function addDays() {
dateParts = document.getElementById('txtDate1').value.split('/');
year = dateParts[2];
month = parseInt(dateParts[0])-1;
day = parseInt(dateParts[1]) + 1;
newDate = new Date ( year, month, day );
year = newDate.getYear();
month = newDate.getMonth()+1;
day = newDate.getDate();
formattedDate = month + '/' + day + '/' + year;
document.getElementById('txtDate2').value=formattedDate;
}
</script>
Now in the design page:
Date1:<asp:TextBox ID="txtDate1" runat="server"></asp:TextBox> Date2 (One day forward):<asp:TextBox ID="txtDate2" runat="server"></asp:TextBox><cc1:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtDate1" PopupButtonID="txtDate1"></cc1:CalendarExtender>
In the code behind.
txtDate1.Attributes.Add("onchange", "addDays();");
Now this works.
Hope this will be useful to all. Happy Programming!