استخدام DateTime Picker لادخال قيمة تاريخ
مشكلة فورمات التاريخ التي تعبت من البحث عن الحل الامثل لمعالجتها
الحل الموضح باستخدام ال ASP.NET
ملحوظة : يمكنكم استخدام هذه الاداة في أي تطبيق ولكن حجم الاداة في الفورم كبيرة وتأخذ مساحة في التصميم وهذا المثال يقوم بفتح الاداة في صفحة أخري تأخذ نفس مقاس الاداة وعند إختيار التاريخ يتم كتابته تلقائيا في ال TextBox
قم بفتح مشروع جديد وإضافة WebForm
في شفرة ال HTML قم باضافة الشفرة التالية
<asp:textbox id="TextBox1" style="Z-INDEX: 105; LEFT: 384px; POSITION: absolute; TOP: 56px" runat="server" Width="80px"></asp:textbox><STRONG> </STRONG><STRONG> <A href="javascript:calendar_window=window.open('calendar1.aspx?formname=Form1.TextBox1','calendar_window','width=154,height=188');calendar_window.focus()"><STRONG><IMG style="Z-INDEX: 106; LEFT: 472px; POSITION: absolute; TOP: 56px" src="button_date.gif"></STRONG></A>الان قم باضافة نموذج آخر باسم calendar1.aspx وقم باضافة شفرة الجافا سكريبت في ال <Head>
<script runat="server">
Private Sub Calendar1_SelectionChanged(sender As Object, e As System.EventArgs)
Dim strjscript as string = "<script language=""javascript"">"
strjscript = strjscript & "window.opener." & Httpcontext.Current.Request.Querystring("formname") & ".value = '" & Calendar1.SelectedDate & "';window.close();"
strjscript = strjscript & "</script" & ">" Literal1.text = strjscript
End Sub
Private Sub Calendar1_DayRender(sender As Object, e As System.Web.UI.WebControls.DayRenderEventArgs)
If e.Day.Date = datetime.now().tostring("d") Then
e.Cell.BackColor = System.Drawing.Color.LightGray
End If
End Sub
</script>تم قم باضافة الشفرة التاليه في ال <Body>
<body leftmargin="0" topmargin="0"> <form runat="server" ID="Form1"> <asp:Calendar id="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" OnDayRender="Calendar1_dayrender" DayNameFormat="FirstLetter" BackColor="#FFFFCC" FirstDayOfWeek="Monday" BorderColor="#FFCC66" ForeColor="#663399" Height="188px" Width="154px" BorderWidth="1px" Font-Size="8pt" Font-Names="Verdana" ShowGridLines="True"> <TodayDayStyle ForeColor="White" BackColor="#FFCC66"></TodayDayStyle> <SelectorStyle BackColor="#FFCC66"></SelectorStyle> <NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC"></NextPrevStyle> <DayHeaderStyle Height="1px" BackColor="#FFCC66"></DayHeaderStyle> <SelectedDayStyle Font-Bold="True" BackColor="#CCCCFF"></SelectedDayStyle> <TitleStyle Font-Size="9pt" Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></TitleStyle> <OtherMonthDayStyle ForeColor="#CC9966"></OtherMonthDayStyle> </asp:Calendar> <asp:Literal id="Literal1" runat="server"></asp:Literal> </form> </body>
قم بتشغيل البرنامج سيظهر ال Textbox1 وبجانبه أيقونة الصورة(لا تظهر الصوره اذا لم توجد في المسار المحدد) حتي ولو لم تظهر الصوره قم بالضغط علي ايقونة الصورة سيتم فتح الفورم وبه الاداة Calander وبعد إختيار التاريخ سيتم كتابته تلقائيا في ال Textbox1
اما الحل الثاني فباستخدام الجافا سكريبت فقط ويعمل علي ال Client Side فقط وساقوم بشرحه لاحقا
والله الموفق