二篇 Web Form My Data Grid Data Bindo End Sub 定义 Page UnLoad事件 Sub Page UnLoad(Src As Object, EAs EventArgs) 与数据库断开连接 My Connection. Close End Sub 现在我们在来看一个对文件操作的例子。 在这个例子中,我们使用的了两个事件, Page Load事件和 Page Unload事件。在 Page Load事件先创建一个文件,然后向这个文件中写入内容。在 Page Unload事件中我们 将此文件关闭。 代码如下: <% import namespace"system. 1o%> <head> title>aSPnet测试写文本文件<titl <head> public Dim writeFile As Stream Writer Sub Page Load(Sender As Object, E as EventArgs) writeFile=File. Create Text("c: Itest. txt") writeFile Writeline("这是一个测试文件! writeFile WriteLine("使用了 Page Load事件和 Page Unload事件!") Response. Write(" test txt创建并写入成功!) End Sub Sub Page UnLoad(Sender As Object, E as EventArgs) End Sub <htmI> 这样,我们就使用了 Page load事件和 Page Unload事件。很明显,我们定义 Page load 事件,是因为这个阶段页面已经处理完毕,需要做些清理工作 上面我们分析了页面处理最重要的几个阶段。应该说明的是:页面的处理过程远比上面 的复杂,因为每个控件都需要初始化。在后面的章节中,我们还将了解到更加详细的页面处 理过程 214 Web form事件模型 在 asp. net中,事件是一个非常重要的概念。我们举两个例子来说明在 Web Form中的 应用 第26页共132页
第二篇 Web Form 第 26 页 共 132 页 MyDataGrid.DataBind() End Sub ’定义 Page_UnLoad 事件 Sub Page_UnLoad(Src As Object, E As EventArgs) ’与数据库断开连接 MyConnection.Close() End Sub 现在我们在来看一个对文件操作的例子。 在这个例子中,我们使用的了两个事件,Page_Load 事件和 Page_Unload 事件。在 Page_Load 事件先创建一个文件,然后向这个文件中写入内容。在 Page_Unload 事件中我们 将此文件关闭。 代码如下: <%@ import namespace="system.io" %> <html> <head> <title>ASP.NET 测试 写 文本文件</title> </head> <body> <script language="vb" runat="server"> public Dim writeFile As StreamWriter Sub Page_Load(Sender As Object,E as EventArgs) writeFile = File.CreateText( "c:\test.txt" ) writeFile.WriteLine( "这是一个测试文件!" ) writeFile.WriteLine( "使用了 Page_Load 事件和 Page_Unload 事件!" ) Response.Write( "test.txt 创建 并 写入 成功!" ) End Sub Sub Page_UnLoad(Sender AS Object, E as EventArgs) writeFile.Close End Sub </script> </body> </html> 这样,我们就使用了 Page_Load 事件和 Page_Unload 事件。很明显,我们定义 Page_Load 事件,是因为这个阶段页面已经处理完毕,需要做些清理工作。 上面我们分析了页面处理最重要的几个阶段。应该说明的是:页面的处理过程远比上面 的复杂,因为每个控件都需要初始化。在后面的章节中,我们还将了解到更加详细的页面处 理过程。 2.1.4 Web Form 事件模型 在 asp.net 中,事件是一个非常重要的概念。我们举两个例子来说明在 Web Form 中的 应用
二篇 Web Form 2141例子一:多按钮事件 我们在一个<rm><form>里面有几个按钮,多个事件的响应我们该怎么处理呢?在 sp net中有很好的处理机制,我们可以在一个页面中写几个方法来分别响应不同的事件。 在下面的例子中,将根据五个按钮的功能,我们定义了五个方法: Add Btn Click( Sender As Object, E As EventArgs) AddAll Btn Click(Sender As Object, E RemoveBtn Click(Sender As Object, E As EventArgs). RemoveAllBtn Click( Sender As Object, E As EventArgs)、 result( Sender As Object, E As EventArgs),分别用来处理全部加进、单个加 进、单个取消、全部取消和提交事件。我们的form提交的时候,还是提交给本页面,由本 页面进行处理,代码如下: <form action="menent. aspx"runat=server> 其中, menent.aspx就是本页面。 Menent. aspx文件代码如下 <!-源文件: formlweb页面简介 menent. aspx-> <html> <script language="VB"runat="server"> Sub AddBtn Click(Sender As Object, EAs EventArg If Not(AvailableFonts SelectedIndex=-1) Installed Fonts. Items. Add(New Listitem( Available Fonts. Selectedltem Value)) AvailableFonts Items Remove( Available Fonts. Selectedltem value End Sub Sub AddAllBtn Click( Sender As Object, E As EventArgs) Do While Not(Available Fonts. Items. Count=0) Installed Fonts. Items. Add(New Listitem( Available Fonts. Items(O).Value) AvailableFonts Items Remove( Available Fonts. Items(0). Value) End Sub Sub RemoveBtn Click(Sender As Object, E As EventArgs) If Not(Installed Fonts. SelectedIndex=-1) Available Fonts. Items. Add( New Listitem(Installed Fonts. Selectedltem Value)) Installed Fonts. Items. Remove(InstalledFonts Selectedltem Value End if End Sub 第27页共132页
第二篇 Web Form 第 27 页 共 132 页 2.1.4.1 例子一:多按钮事件 我们在一个<form></form>里面有几个按钮,多个事件的响应我们该怎么处理呢?在 asp.net 中有很好的处理机制,我们可以在一个页面中写几个方法来分别响应不同的事件。 在下面的例子中,将根据五个按钮的功能,我们定义了五个方法:AddBtn_Click(Sender As Object, E As EventArgs) 、 AddAllBtn_Click(Sender As Object, E As EventArgs) 、 RemoveBtn_Click(Sender As Object, E As EventArgs)、RemoveAllBtn_Click(Sender As Object, E As EventArgs)、result(Sender As Object,E As EventArgs),分别用来处理全部加进、单个加 进、单个取消、全部取消和提交事件。我们的 form 提交的时候,还是提交给本页面,由本 页面进行处理,代码如下: <form action="menent.aspx" runat=server> 其中,menent.aspx 就是本页面。 Menent.aspx 文件代码如下: <!--源文件:form\web 页面简介\menent.aspx--> <html> <script language="VB" runat="server"> Sub AddBtn_Click(Sender As Object, E As EventArgs) If Not (AvailableFonts.SelectedIndex = -1) InstalledFonts.Items.Add(New ListItem(AvailableFonts.SelectedItem.Value)) AvailableFonts.Items.Remove(AvailableFonts.SelectedItem.Value) End If End Sub Sub AddAllBtn_Click(Sender As Object, E As EventArgs) Do While Not (AvailableFonts.Items.Count = 0) InstalledFonts.Items.Add(New ListItem(AvailableFonts.Items(0).Value)) AvailableFonts.Items.Remove(AvailableFonts.Items(0).Value) Loop End Sub Sub RemoveBtn_Click(Sender As Object, E As EventArgs) If Not (InstalledFonts.SelectedIndex = -1) AvailableFonts.Items.Add(New ListItem(InstalledFonts.SelectedItem.Value)) InstalledFonts.Items.Remove(InstalledFonts.SelectedItem.Value) End If End Sub
二篇 Web Form Sub RemoveAllBtn Click(Sender As Object, E As EventArgs) Do While Not(Installed Fonts. Items. Count=0) Available Fonts. Items. Add(New Listitem(Installed Fonts. Items(O). Value) Installed Fonts. Items. Remove( Installed Fonts. Items(O). value) End sub Sub result( Sender As Object, E As EventArgs) dim tmpstr as String tmpStr="<br> Do While Not(Installed Fonts. Items. Count=0) tmpStr=tmpStr Installed Fonts. items(O).value &"<br> Installed Fonts. items. remove(InstalledFonts. items). value) tmpstr=systEm. Web. Httputility. Urlencode TostriNg( tmpstr, System. text. Encoding. Ut 8) Page Navigate("result. aspx?Installed Fonts="& tmpStr) End Sub <body bgcolor="#ccccff> <h3>< font face=" Verdana">NET>不同事件的处理方法!<font><h3> <form action="menent. aspx" runat=server> <table> <tr> <td> 现有字体 <td> <I--Filler--> </td> <td> 选择的字体 </td> 第28页共132页
第二篇 Web Form 第 28 页 共 132 页 Sub RemoveAllBtn_Click(Sender As Object, E As EventArgs) Do While Not (InstalledFonts.Items.Count = 0) AvailableFonts.Items.Add(New ListItem(InstalledFonts.Items(0).Value)) InstalledFonts.Items.Remove(InstalledFonts.Items(0).Value) Loop End Sub Sub result(Sender As Object,E As EventArgs) dim tmpStr as String tmpStr="<br>" Do While Not (InstalledFonts.Items.Count = 0) tmpStr=tmpStr & InstalledFonts.items(0).value & "<br>" InstalledFonts.items.remove(InstalledFonts.items(0).value) Loop tmpStr=System.Web.HttpUtility.UrlEncodeToString(tmpStr,System.Text.Encoding.UTF 8) Page.Navigate("result.aspx?InstalledFonts=" & tmpStr) End Sub </script> <body bgcolor="#ccccff"> <center> <h3><font face="Verdana">.NET->不同事件的处理方法!</font></h3> </center> <center> <form action="menent.aspx" runat=server> <table> <tr> <td> 现有字体 </td> <td> <!-- Filler --> </td> <td> 选择的字体 </td>
二篇 Web Form </tr <tr> asp: listbox id="Available Fonts"width="100px"runat=server> <asp listitem> Arial Black </asp: listitem <asp: listitem>Garamond</asp: listitem> <asp: listitem>Somona</asp: listitem> casp: listitem>Symbol</asp: listitem> </asp: listbox> </td <I--Filler-> </td> <asp: listbox id="Installed Fonts"width=100px"runat=server> <asp: listitem>Times </asp: listitem> <asp: listitem>Helvetica</asp: listitem> <asp: listitem>Arial</asp: listitem> c/asp: listbox> </tr> <td> </td> <asp: button text=<<=="OnClick="RemoveAllBtn Click "runat=server/> <asp: button text="<--"OnClick="Remove Btn Click"runat=server/> <asp: button text="-->On Click="AddBtn Click"runat=server asp: button text=>>OnClick="AddAllBtn Click"runat=server asp: label id="Message"forecolor="red"font-bold=true"runat=server/> <tr align=ce <asp: button text=EX" Onclick="result"runat=server/> <-- filler--> </table> 第29页共132页
第二篇 Web Form 第 29 页 共 132 页 </tr> <tr> <td> <asp:listbox id="AvailableFonts" width="100px" runat=server> <asp:listitem>Roman</asp:listitem> <asp:listitem>Arial Black</asp:listitem> <asp:listitem>Garamond</asp:listitem> <asp:listitem>Somona</asp:listitem> <asp:listitem>Symbol</asp:listitem> </asp:listbox> </td> <td> <!-- Filler --> </td> <td> <asp:listbox id="InstalledFonts" width="100px" runat=server> <asp:listitem>Times</asp:listitem> <asp:listitem>Helvetica</asp:listitem> <asp:listitem>Arial</asp:listitem> </asp:listbox> </td> </tr> <tr> <td> <!-- Filler --> </td> <td> <asp:button text="<<==" OnClick="RemoveAllBtn_Click" runat=server/> <asp:button text="<--" OnClick="RemoveBtn_Click" runat=server/> <asp:button text="-->" OnClick="AddBtn_Click" runat=server/> <asp:button text="==>>" OnClick="AddAllBtn_Click" runat=server/> <asp:label id="Message" forecolor="red" font-bold="true" runat=server/> </td> </tr> <tr align=center> <td align=center> <asp:button text="提交" Onclick="result" runat=server/> <!-- Filler --> </td> </tr> </table> </form> </center>
二篇 Web Form 写一个页面,在提交时候接收相关信息。我们在页面进入的时候取得传送过来的数值,用 Request Params("InstalledFonts") 来获得,具体来看我们的文件 result. aspx的代码 <!-源文件: formlweb页面简介 result. aspx-> <script language="VB"runat="server"> Sub Page Load( Sender As Object, EAs EventArgs) If Not(Page IsPost Back) NameLabel Text =Request Params("Installed Fonts") End If End sub </script> ODY> <h3>< cfont face=" Verdana">NET>多事件处理!</font><h3> <form action="controls Navigation Target. aspx"runat-server> <font faces"Verdana"> Hi你的选择是:< casp: label id=" NameLabel" runat= server/! </body> /html> 程序运行如下 第30页共132页
第二篇 Web Form 第 30 页 共 132 页 </body> </html> 写一个页面,在提交时候接收相关信息。我们在页面进入的时候取得传送过来的数值,用: Request.Params("InstalledFonts") 来获得,具体来看我们的文件 result.aspx 的代码: <!--源文件:form\web 页面简介\result.aspx--> <html> <script language="VB" runat="server"> Sub Page_Load(Sender As Object, E As EventArgs) If Not (Page.IsPostBack) NameLabel.Text = Request.Params("InstalledFonts") End If End Sub </script> <BODY > <h3><font face="Verdana">.NET->多事件处理!</font></h3> <p> <p> <hr> <form action="controls_NavigationTarget.aspx" runat=server> <font face="Verdana"> Hi,你的选择是: <asp:label id="NameLabel" runat=server/>! </font> </form> </body> </html> 程序运行如下: