ASP.Net/User Control and Master Page/Property

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Creating ViewState-Enabled Control Properties (C#)

   <source lang="csharp">

<%@ Page language="C#" %> <%@ Register TagPrefix="Control" Namespace="Control" Assembly="Control" %> <script language="C#" runat="server"> void Page_Load(object sender, EventArgs e) {

 if (!IsPostBack)
 {
   Random rand = new Random();
   ViewStateControl1.Text = rand.Next(1,100).ToString();
 }

} </script> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html>

 <head>
   <title>Creating ViewState-Enabled Control Properties</title>
 </head>
 <body>
   <form id="Form1" method="post" runat="server">
     <Control:ViewStateControl id="ViewStateControl1" runat="server" />
     <asp:linkbutton text="PostBack test" runat="server" />
   </form>
 </body>

</html> File: Control.cs using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ruponentModel; namespace Control {

 [DefaultProperty("Text"), 
 ToolboxData("<{0}:ViewStateControl runat=server></{0}:ViewStateControl>")]
 public class ViewStateControl : System.Web.UI.WebControls.WebControl
 {
   public string Text 
   {
     get
     {
       string text = (string) ViewState["Text"];
       return (text == null)? string.Empty : text;
     }
     set
     {
       ViewState["Text"] = value;
     }
   }
   protected override void Render(HtmlTextWriter writer)
   {
     writer.Write(Text);
   }
 }

}

</source>
   
  


Creating ViewState-Enabled Control Properties (VB)

   <source lang="csharp">

<%@ Page language="VB" %> <%@ Register TagPrefix="Control" Namespace="Control" Assembly="Control" %> <script language="VB" runat="server"> Sub Page_Load(Sender As Object, E As EventArgs)

 If Not IsPostBack Then
   Dim RandomGenerator As Random
   RandomGenerator = New Random(DateTime.Now.Millisecond)
   ViewStateControl1.Text = RandomGenerator.Next(1,100)
 End If

End Sub </script> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html>

 <body ms_positioning="GridLayout">
   <form id="Form1" method="post" runat="server">
     <Control:viewstatecontrol id="ViewStateControl1" runat="server" />
     <asp:linkbutton text="PostBack test" runat="server" id="Linkbutton1" />
   </form>
 </body>

</html>

File: Default.vb Imports System Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.ruponentModel Namespace Control

   Public Class ViewStateControl
       Inherits System.Web.UI.WebControls.WebControl
       Public Property Text() As String
           Get
               Dim _text As String = CStr(ViewState("Text"))
               If _text Is Nothing Then
                   Return String.Empty
               Else
                   Return _text
               End If
           End Get
           Set(ByVal Value As String)
               ViewState("Text") = Value
           End Set
       End Property
       Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
           writer.Write(Text)
       End Sub
   End Class

End Namespace

</source>
   
  


User control with readonly properties

   <source lang="csharp">

<%@ Page %> <%@ Register TagPrefix="uc1" TagName="header" Src="Control.ascx" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML>

 <HEAD>
   <title>User Controls</title>
   <Script language="C#" Runat="Server">
     private void Page_Load(object sender, System.EventArgs e)
   {
     header1.Author = "Snoopy";
     FooterLabel.Text = "Rendered " + header1.RenderDate;
   }
   </Script>
 </HEAD>
 <body>
   <form id="dependingdropdowns" method="post" runat="server">
     <uc1:header id="header1" runat="server" Title="A Tale of Mystery"></uc1:header>

It was a dark and stormy night.


     <asp:Label ID="FooterLabel" Runat="server" />
   </form>
 </body>

</HTML> File: Control.ascx <%@ Control Language="c#" %> <script runat="server"> private string title; private string author; private DateTime renderDate = System.DateTime.Now; public string Title {

 get {
   return title;
 }
 set {
   title = value;
 }

} public string Author {

 get {
   return author;
 }
 set {
   author = value;
 }

} // ReadOnly public DateTime RenderDate {

 get {
   return renderDate;
 }

} private void Page_Load(object sender, EventArgs e) {

 TitleLabel.Text = Title;
 AuthorLabel.Text = Author;  

} </script>

<asp:Label id="TitleLabel" runat="server" />

<asp:Label id="AuthorLabel" runat="server" /></h1> </source>