科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道ASP.NET 2.0中的Web和HTML服务器控件 2

ASP.NET 2.0中的Web和HTML服务器控件 2

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ASP.NET服务器控件是在页面中使用包含runat="server"属性的宣告式标记来定义的。下面的例子声明了三个服务器控件

作者:中国IT实验室 来源:中国IT实验室 2007年9月7日

关键字: html web ASP.NET

  • 评论
  • 分享微博
  • 分享邮件

 使用服务器控件
  
    ASP.NET服务器控件是在页面中使用包含runat="server"属性的宣告式标记来定义的。下面的例子声明了三个<asp:label runat="server">服务器控件,并定义了每个控件的文本和样式属性。
  
  <html>
  <body>
  <h3><font face="Verdana">Declaring Server Controls</font></h3>
  This sample demonstrates how to declare the server control and
  manipulate its properties within a page.
  <p>
  <hr>
  <asp:label id="Message1" font-size="16" font-bold="true" forecolor="red" runat=server>This is Message One</asp:label>
  <br>
  <asp:label id="Message2" font-size="20" font-italic="true" forecolor="blue" runat=server>This is Message Two</asp:label>
  <br>
  <asp:label id="Message3" font-size="24" font-underline="true" forecolor="green" runat=server>This is Message Three</asp:label>
  </body>
  </html>
  
    操作服务器控件
  
    你可以用编程的方式,通过提供ASP.NET服务器控件的id属性来识别服务器控件;还可以在运行时刻,使用这个id指针来编程操作该服务器控件的对象模型。例如,下面的例子演示了页面开发者如何在Page_Load事

件中编程设置<asp:label runat="server">控件的Text属性。
  
  <html>
  <script language="VB" runat="server">
  Sub Page_Load(Sender As Object, E As EventArgs)
  Message.Text = "You last accessed this page at: " & DateTime.Now
  End Sub
  </script>
  
  <body>
  <h3><font face="Verdana">Manipulating Server Controls</font></h3>
  This sample demonstrates how to manipulate the server control within
  the Page_Load event to output the current time.
  <p>
  <hr>
  <asp:label id="Message" font-size="24" font-bold="true" runat=server/>
  </body>
  </html>
  
    处理控件的事件
  
    ASP.NET服务器控件也可以暴露和引发服务器事件,以供页面开发者处理。页面开发者可以通过宣告式地给每个控件编写事件来实现这项功能(在这种情况下,事件的属性名称表明事件的名称,属性的值表明被调用的方法的名称)。例如,下面的代码示例演示了如何给按钮控件编写OnClick事件。
  
  <html>
  <script language="VB" runat="server">
  Sub EnterBtn_Click(Sender As Object, E As EventArgs)
  Message.Text = "Hi " & Name.Text & ", welcome to ASP.NET!"
  End Sub
  </script>
  
  <body>
  <h3><font face="Verdana">Handling Control Action Events</font></h3> 
    <p>
  This sample demonstrates how to access a server control within the "Click" event of a , and use its content to modify the text of a .
  <p>
  <hr>
  
  <form action="controls3.aspx" runat=server>
  <font face="Verdana"> Please enter your name:
  <asp:textbox id="Name" runat=server/>
  <asp:button text="Enter" Onclick="EnterBtn_Click" runat=server/>
  <p>
  <asp:label id="Message" runat=server/>
  </font>
  </form>
  
  </body>
  </html>
  
    处理多个服务器事件
  
    事件处理程序为页面开发者在ASP.NET页面中构造逻辑提供了一条清晰的途径。例如,下面的例子演示了如何在一个页面上处理四个按钮事件。
  
  <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
  
  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
  </script>
  <body>
  <h3><font face="Verdana">Handling Multiple Control Action Events</font></h3>
  <p>
  This sample demonstrates how to handle multiple control action events raised from
  different controls.
  <p>
  <hr> 
<form action="controls4.aspx" runat=server>
  <table>
  <tr>
  <td>
  Available Fonts
  </td>
  <td>
  <!-- Filler -->
  </td>
  <td>
  Installed Fonts
  </td>
  </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/>
  </td>
  <td>
  <!-- Filler -->
  </td>
  </tr>
  </table>
  </form>
  </body> 
     </html>
    执行页面导航(第一种情况)
  
    在实际的Web应用程序中,多个页面之间的导航是常见的。下面的例子演示了如何使用<asp:hyperlink runat=server>控件导航到另外一个页面(同时传递了自定义的查询字符串参数)。接着这个例子演示了如何轻易地在目标页面上得到这些查询字符串参数。
  
  <html>
  <script language="VB" runat="server">
  Sub Page_Load(Sender As Object, E As EventArgs)
  Dim RandomGenerator As Random
  RandomGenerator = New Random(DateTime.Now.Millisecond)
  Dim RandomNum As Integer
  RandomNum = RandomGenerator.Next(0, 3)
  Select RandomNum
  Case 0:
  Name.Text = "Scott"
  Case 1:
  Name.Text = "Fred"
  Case 2:
  Name.Text = "Adam"
  End Select
  AnchorLink.NavigateUrl = "controls_navigationtarget_vb.aspx?name=" & System.Web.HttpUtility.UrlEncode(Name.Text)
  End Sub
  </script>
  <body>
  <h3><font face="Verdana">Performing Page Navigation (Scenario 1)</font></h3>
  <p>
  This sample demonstrates how to generate a HTML Anchor tag that will cause the client to
  navigate to a new page when he/she clicks it within the browser.
  <p>
  <hr>
  <p>
  <asp:hyperlink id="AnchorLink" font-size=24 runat=server>
  Hi <asp:label id="Name" runat=server/> please click this link!
  </asp:hyperlink>
  </body>
  </html>
  
    执行页面导航(第二种情况)
  
    并非所有的页面导航都由客户端的超级链接发起。ASP.NET页面开发者调用Response.Redirect(url)方法也可以发起客户端页面的重定向或导航。这种情况典型发生在真正进行导航之前,服务器端需要验证客户端的输入信息的时候。
  
    下面的例子演示了如何使用Response.Redirect方法把参数传递到另外一个目标页面。它还演示了如何在目标页面上简单地获取这些参数。
  
  <html>
  <script language="VB" runat="server">
  Sub EnterBtn_Click(Sender As Object, E As EventArgs)
   If Not (Name.Text = "")
    Response.Redirect("Controls_NavigationTarget_vb.aspx?name=" & System.Web.HttpUtility.UrlEncode(Name.Text))
   Else
    Message.Text = "Hey! Please enter your name in the textbox!"
   End If
  End Sub
  </script>
  <body>
  <h3><font face="Verdana">Performing Page Navigation (Scenario 2)</font></h3>
  <p>
  This sample demonstrates how to navigate to a new page from within a click event, passing a value as a querystring argument (validating first that the a legal textbox value has been specified).
  <p>
  <hr>
  <form action="controls6.aspx" runat=server>
   <font face="Verdana">Please enter your name:
    <asp:textbox id="Name" runat=server/>
    <asp:button text="Enter" Onclick="EnterBtn_Click" runat=server/>
    <p>
    <asp:label id="Message" forecolor="red" font-bold="true" runat=server/>
   </font>
  </form>
  </body>
  </html>

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章