Textbox in Kalender zurück schreiben

16/03/2010 - 14:03 von Tamara Mikes | Report spam
Salü alle zusammen

Mit dem unten stehenden Code erreicht man, dass wenn man in die Textbox
klickt, automatisch ein Kalender aufgeht. Ich kann nun wàhlen ob ich ein
Datum im Kalender anklicken will oder ob ich ein Datum in die Textbox tippen
will. Das finde ich super.

Jetzt würde ich das Beispiel gerne erweitern, so dass wenn ich ein Datum im
die Textbox eingebe (TextChange), dieses auch im Kalender dargestellt wird.
a) geht das?
b) wie geht das?

Vielen lieben Dank für Hinweise
Gruss Tamara


<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="Test_Datum.aspx.cs"
Inherits="ImportKonfigurator.test.Test_Datum" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"
TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xht...">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<script runat="server">
protected void c1_SelectionChanged(object sender, EventArgs e)
{
PopupControlExtender pce =
AjaxControlToolkit.PopupControlExtender.GetProxyForCurrentPopup(Page);
pce.Commit((sender as
Calendar).SelectedDate.ToShortDateString());
}
protected void tbPeriodeBeginn_TextChanged(object sender,
EventArgs e) {
//Hier müsste wohl ein Code hin, der das eingegebene Datum in
den Kalender schreibt. Nur wie?
}
</script>

<br />
<asp:Panel ID="pnlCalendar" runat="server">
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:Calendar ID="c1" runat="server"
onselectionchanged="c1_SelectionChanged" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>

<div>
Periode Beginn:
<asp:TextBox ID="tbPeriodeBeginn" runat="server"
ontextchanged="tbPeriodeBeginn_TextChanged" />
Stichtag:
<asp:TextBox ID="tbStichtag" runat="server" />
Periode Ende:
<asp:TextBox ID="tbPeriodeEnde" runat="server" />
</div>
<cc1:PopupControlExtender ID="pce1" runat="server"
TargetControlID="tbPeriodeBeginn" PopupControlID="pnlCalendar"
Position="Bottom" />
<cc1:PopupControlExtender ID="pce2" runat="server"
TargetControlID="tbStichtag" PopupControlID="pnlCalendar" Position="Bottom"
/>
<cc1:PopupControlExtender ID="pce3" runat="server"
TargetControlID="tbPeriodeEnde" PopupControlID="pnlCalendar"
Position="Bottom" />
</div>
</form>
</body>
</html>
 

Lesen sie die antworten

#1 Gerold Mittelstädt
17/03/2010 - 13:54 | Warnen spam
Hi Tamara!

Tamara Mikes schrieb:
Mit dem unten stehenden Code erreicht man, dass wenn man in die Textbox
klickt, automatisch ein Kalender aufgeht. Ich kann nun wàhlen ob ich ein
Datum im Kalender anklicken will oder ob ich ein Datum in die Textbox tippen
will. Das finde ich super.

Jetzt würde ich das Beispiel gerne erweitern, so dass wenn ich ein Datum im
die Textbox eingebe (TextChange), dieses auch im Kalender dargestellt wird.
a) geht das?



Nunja.. sowas sollte IMHO komplett Clientseitig ablaufen.

b) wie geht das?



Tu Dir selbst einen Gefallen, und versuch auf jQuery umzusteigen. Das
AjaxControlToolkit ist zu verkapselt, als das man da noch ordentlich
eingreifen könnte.

http://jqueryui.com/demos/datepicker/

Das von Dir gewünschte Verhalten ist da übrigens schon out-of-the-box
eingebaut.

Microsoft findet jQuery übrigens so toll, dass es selbst IntelliSense
unterstützung für gibt und wohl mit VS2010 und MVC ausgeliefert wird. ;)

Viele Grüße!

Ähnliche fragen