更高技术的网页 ASP.NET的一些控件远比HTML控件要更加智能化。其中之一就是日历(Calendar)控件。 以下代码是calendar.aspx中的一部分。代码提供二种方法让控件设置日期: 浏览日历然后选择日期; 按照日期格式输入日期,确认选择。这种方法由.NET的Convert类支持。 <script language="Delphi" runat="server"> procedure Calendar1Selected(Sender: System.Object; E: EventArgs); begin Label1.Text := 'Delphi for .NET says you picked ' + Calendar1.SelectedDate.ToString('D'); end; procedure Button1Click(Sender: System.Object; E:EventArgs); begin Calendar1.VisibleDate := System.Convert.ToDateTime(Edit1.Text); Label1.Text := 'Delphi for .NET says you set ' + Calendar1.VisibleDate.ToString('D'); end; </script> <body style="font:18pt Verdana"> <form runat="server"> <center> <h1>Delphi for .NET running in ASP.NET</h1> <p>Please pick a date</p> <asp:Calendar id="Calendar1" runat="server" ForeColor="#0000FF" BackColor="#FFFFCC" OnSelectionChanged="Calendar1Selected"> <TodayDayStyle Font-Bold="True"/> <NextPrevStyle ForeColor="#FFFFCC"/> <DayHeaderStyle BackColor="#FFCC66"/> <SelectedDayStyle ForeColor="Black" BackColor="#CCCCFF"/> <TitleStyle Font-Size="14pt" Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"/> <OtherMonthDayStyle ForeColor="#CC9966"/> </asp:Calendar> <p><asp:TextBox id="Edit1" width=200 runat="server"/> <asp:Button text="Set date" id="Button1" OnClick="Button1Click" runat="server" /> </p> <p><asp:Label id="Label1" runat="server"/></p> </center> </form> </body> 在日历上选择日期触发OnSelectionChanged事件,调用Delphi的Calendar1Selected()过程。 输入日期,点击"Set data"按钮触发Button1Click事件,调用Delphi的Button1Click()过程。 数据处理 现在通过日历的日期选择来选择显示数据库数据。在这个ASP.NET Delphi网页上,增加一个DataGrid和一个TextBox,前者显示数据库数据,后者输入要显示的数据库域。 <%@Import Namespace="System.Data"%> <%@Import Namespace="System.Data.SqlClient"%> <script language="Delphi" runat="server"> const ProdName = 'Delphi for .NET'; DispFields = 'OrderID, CustomerID, ShipName, ShipCity, ShipCountry'; procedure DateSelected(Sender: System.Object; E: EventArgs); begin Label1.Text := ProdName + ' says you picked ' + Calendar1.SelectedDate.ToString('D'); DataGrid1.DataSource := GetOrders(Calendar1.SelectedDate); DataGrid1.DataBind; end; |