欢迎光临
我们一直在努力

将Delphi作为ASP.NET的脚本语言(下)-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

更高技术的网页
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;

procedure button1click(sender: system.object; e:eventargs);
begin
  calendar1.visibledate := system.convert.todatetime(edit1.text);
  label1.text := prodname + says you set + calendar1.visibledate.tostring(d);
end;

procedure button2click(sender: system.object; e:eventargs);
begin
  displayfields.text := dispfields;
end;

function getorders(date : datetime) : dataset;
var
  adapter : sqldataadapter;
begin
  adapter := sqldataadapter.create(
    select + displayfields.text + from orders +
    where orderdate = + date.tostring(d)+,
    server=(local);database=northwind;trusted_connection=yes);
  result := dataset.create;
  adapter.fill(result);
end;

</script>

<body style=”font:18pt verdana”>
  <form runat=”server”>
     <h1><%=prodname %> with a calendar, datagrid, & sqlclient in asp.net</h1>
    <table>
    <tr valign=”top”><td>
    <p><b>pick a date</b></p>
    <asp:calendar id=”calendar1″ runat=”server” forecolor=”#0000ff” backcolor=”#ffffcc”
      onselectionchanged=”dateselected”>
      <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=150 runat=”server”/>
       <asp:button text=”set date” id=”button1″ onclick=”button1click” runat=”server” />
    </p>
    </td><td valign=”top”>
    <p><b>display fields:</b> <asp:textbox id=”displayfields”
         text=”orderid, customerid, shipname, shipcity, shipcountry” width=500 runat=”server”/>
       <asp:button text=”reset fields” id=”button2″ onclick=”button2click” runat=”server” /></p>
    <asp:datagrid id=”datagrid1″ runat=”server” bordercolor=”#ffcc66″ forecolor=”#0000ff”>
      <headerstyle forecolor=”#ffffcc” backcolor=”#990000″/>
    </asp:datagrid>
    </td></tr></table>
    <p><asp:label id=”label1″ runat=”server”/></p>
  </form>
</body>

每当用户点击日历选择日期时,就触发onselectionchanged事件,调用dateselected()函数。
在getorders函数中,数据库的连接由命名空间定义的sqlclient实现,数据库是ms sql 2000的示范库northwind。sqldataadapter将查询结果安装到datagrid中,显示出数据表格,如附图。

改变域输入框的域名,再点击日历,就得到不同的结果。

这就是日历驱动的数据库查询系统,由delphi for .net与asp.net共同完成。

结语
本文试图简略说明在asp.net中应用delphi是如何方便。
请记住,本文示例是delphi 7的预览示例,正式版本的结果也许不完全如此,当然也许就是如此。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 将Delphi作为ASP.NET的脚本语言(下)-.NET教程,Asp.Net开发
分享到: 更多 (0)