Kullanıcı denetimleri ve özel denetimler'e genel bakış

Makale çevirileri Makale çevirileri
Makale numarası: 893667 - Bu makalenin geçerli olduğu ürünleri görün.
ASP.NET Destek Sesi Sütunu

Kullanıcı denetimleri ve özel denetimler'e genel bakış

Bu sütun için kendi gereksinimlerinize göre özelleştirmenin sizi ilgilendiren konular hakkındaki fikirlerinizi göndermeye davet etmek isteriz ve gelecekte Knowledge Base makaleleri ve Destek Sesi sütunu görmek istediğiniz sorunlar giderilmiştir. Kendi fikirleri ve Ask For It formunu kullanarak geri besleme gönderebilirsiniz. Formun alt kısmındaki bu sütunun. bağlantı da orada
Hepsini aç | Hepsini kapa

Bu Sayfada

Giriş

Yüksek! Bu Parag ve artık bir yılda Microsoft ASP.NET destek grubuyla çalışan bir destek mühendisine olduğum. Microsoft'a katılmadan önce BANA Microsoft teknolojilerini kullanarak masaüstü uygulamaları ve Web tabanlı proje çalıştı. Müşteriler için kaliteyi destek sağlarken özel denetimleri içine bazı karışıklığı oluştu ve yalnızca özel denetimleri içine bazı kavramlar açıklamak için biraz zaman alabilir istiyorum durumlarda gördünüz. Bana, görünüyor gibi hatalı inanıyorsanız, askıda alın, sonra ASP.NET için teşekkür ederiz için daha iyi bir konumda olacaktır.

GENEL BAKIŞ

Bu ayın sütununda MIYIM aşağıdaki konular ele:
  • Kullanıcı denetimleri nelerdir?
  • Özel denetimleri nelerdir?
  • Kullanıcı denetimleri ve özel denetimler arasındaki temel farklar nelerdir?
BANA durumu yönetimi ve özel denetimler oluşturma gibi özel denetimler için ilgili gelişmiş konular birkaç neden de.

Kullanıcı denetimleri nelerdir?

Özel, yeniden kullanılabilir denetimler kullanıcının denetimleridir ve bunların HTML ve Web sunucu denetimleri görevli olduğu teknikleri kullanın. Bunlar, ortak kullanıcı arabirimleri arasında ASP.NET Web uygulamalarını yeniden bölümlemek için kolay bir yol sunar. Bunlar, Web Forms sayfa çalıştığı aynı Web Forms programlama modelini kullanın. Web formları modeli programlama hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
Web formları sayfaları Giriº
http://msdn2.microsoft.com/en-us/library/65tcbxz3(vs.71).aspx

Web Forms kodu modeli
http://msdn2.microsoft.com/en-us/library/015103yb(vs.71).aspx

Bir kullanıcı denetimi oluşturma

Bir kullanıcı denetimi oluşturmak için kullandığınız sözdiziminin bir Web Forms sayfası (.aspx) oluşturmak için kullandığınız sözdizimine benzer. Tek fark, bir kullanıcı denetimi <html>dahil olan <body>, ve bu yana, Web Forms sayfa kullanıcı denetimini barındıran öğeleri <form>. Bir kullanıcı denetimi oluşturmak için aşağıdaki adımları izleyin:
  1. Metin veya HTML Düzenleyicisi'ni açın ve tüm özellikler, yöntemler ve olaylar kullanan bir sunucu tarafı kod bloğu.
    <script language="C#" runat="server">
       public void button1_Click(object sender, EventArgs e)
       {
          label1.Text = "Hello World!!!";
       }
    </script>
    
  2. Kullanıcı denetimi için bir kullanıcı arabirimi oluşturun.
    <asp:Label id="label1" runat="server"/>
     <br><br>
    <asp:button id="button1" text="Hit" OnClick="button1_Click" runat="server" />
    

Bir Web Forms sayfasında bir kullanıcı denetimi nasıl kullanılır

  1. Yeni bir Web Forms sayfası (.aspx), Visual Studio .NET 2002, Visual Studio .NET 2003, Visual Studio 2005 veya herhangi bir metin düzenleyicisi içinde oluşturun.
  2. @ Register yönergesi bildirin. Örneğin, aşağıdaki kodu kullanın.
    <%@ Register TagPrefix="UC" TagName="TestControl" Src="test.ascx" %>
    Kullanıcı denetimi ve Web Forms sayfası aynı konumdaysa Not varsayın.
  3. Kullanıcı denetimi Web Forms sayfasında kullanmak için <a0></a0>, sonra @ Register yönergesi şu kodu kullanın.
    <html>
        <body>
              <form runat="server">
                   <UC:TestControl id="Test1" runat="server"/>
              </form>
        </body>  
    </html>
    

Web Forms sayfasının dosya arkasındaki kodda programsal olarak bir kullanıcı denetimi örneğini oluşturma hakkında

Önceki örnekte, bir kullanıcı denetiminde bildirimli @ Register yönergesi kullanarak bir Web Forms sayfası örneği. Ancak, dinamik olarak bir kullanıcı denetimi örneğini oluşturma ve bu sayfaya ekleyin. Yapmaya yönelik adımları aşağıda verilmektedir:
  1. Yeni Web formları sayfa Visual Studio'da oluşturun.
  2. Bu Web Forms sayfa için oluşturulan dosya arkasındaki kodda gidin.
  3. <a0>Page</a0> sınıfının <a1>Page_Load</a1> olayında <a1>Yazma</a1> aşağıdaki code.
    // Load the control by calling LoadControl on the page class.
    Control c1 = LoadControl("test.ascx");
                
    // Add the loaded control in the page controls collection.	
    Page.Controls.Add(c1);
    
    Not, bir kullanıcı denetimi dinamik sayfa ömrü sırasında belirli olaylar ekleyebilirsiniz.

    Daha fazla bilgi için aşağıdaki Web sitelerini ziyaret edin:
    Denetimleri Web Forms sayfaya programsal olarak ekleme
    http://msdn2.microsoft.com/en-us/library/kyt0fzt1(vs.71).aspx

    Denetim yürütülmesine ömrü
    http://msdn2.microsoft.com/en-us/library/aa719775(vs.71).aspx

    Dinamik Web denetimleri postbacks ve görünüm durumu, Scott Mitchell
    http://aspnet.4guysfromrolla.com/articles/092904-1.aspx

Bir kullanıcı denetimi nasıl işlenir

Bir kullanıcı denetimi içeren bir sayfa istendiğinde, aşağıdaki olaylar gerçekleşir:
  • Sayfa çözümleyici @ Register yönergesinde <a1>kaynak</a1> özniteliğinde belirtilen .ascx dosyayı ayrıştırmak ve System.Web.UI.UserControl sınıfından türetilmiş bir sınıf oluşturur.
  • Çözümleyici sonra dinamik olarak sınıf derleme derler.
  • Visual Studio'nun kullanıyorsanız, arkasında dosya kullanıcı denetimi için bir kod'da Visual Studio'nun tasarım zamanında yalnızca, oluşturur ve bu dosyayı tasarımcısı tarafından precompiled.
  • Son olarak, dinamik kod oluşturma ve derleme işlemi sırasında oluşturulan kullanıcı denetimi için sınıf, dosya arkasındaki kodda kodunu içerir (. ascx.cs) yan? s?ra .ascx dosya içinde yazılmış kod.

Özel denetimleri nelerdir?

Normal bir kullanıcı ve Web Form denetimi gibi özel denetimler, sunucu üzerinde execute, nesne modeli kullanır ve HTML veya XML gibi biçimlendirme metni işlemek derlenmiş kod bileşenleridir.

Nasıl yapılır: özel denetimi için bir temel sınıf'ı seçin.

Özel bir denetim yazmak için <a0></a0>, doğrudan veya dolaylı olarak yeni bir sınıf System.Web.uı.Control sınıfı veya sınıf System.Web.UI.WebControls.WebControl türetilmesi:
  • Nonvisual öğeleri işlemek için bir denetim istiyorsanız, System.Web.uı.Control türetilmesi. Örneğin, <meta>ve <head>nonvisual işleme örnek olarak verilebilir.
  • Görsel bir arabirim istemci bilgisayarın oluşturduğu HTML işlemek için bir denetim istiyorsanız, System.Web.UI.WebControls.WebControl türetilmesi.
Varolan denetimleri gibi düğme veya etiket işlevselliğini değiştirmek isterseniz yeni sınıfın varolan bu sınıflarıyla türetmek doğrudan ve kendi varsayılan davranışını değiştirebilir.

Kısaca, Denetim sınıfı olarak, bu sayfa sınıf için <a1>Denetim</a1> ağacında koyabilirsiniz temel işlevselliği sağlar. Istemci bilgisayar üzerinde görsel içeriği görüntülemek için ana Denetim sınıfı işlevselliğini WebControl sınıfı ekler. Örneğin, WebControl sınıfı, görünümünü ve stilleri yüksekliği yazı tipi ve renk gibi özellikleri denetlemek için kullanabilirsiniz.

Nasıl oluşturulacağı ve Visual Studio'yu kullanarak System.Web.uı.Control genişleten basit bir özel denetim kullanın.

  1. Visual Studio'nun başlatın.
  2. Sınıf kitaplığı proje oluşturmak ve bu CustomServerControlsLib gibi bir ad verin.
  3. Bir kaynak dosyası, örneğin SimpleServerControl.cs projeye ekleyin.
  4. System.Web ad alanının başvuru, başvurular bölümünde bulunur.
  5. Aşağıdaki ad SimpleServerControl.cs dosyayı.
    System
    System.Collections
    System.ComponentModel
    System.Data
    System.Web
    System.Web.SessionState
    System.Web.UI
    System.Web.UI.WebControls
    
    bulunup bulunmadığını denetleyin.
  6. Denetim temel sınıf SimpleServerControls sınıfıyla devralır.
    public class SimpleServerControl : Control
  7. Çıktı çıktı akışına yazılamıyor oluşturma yöntemini geçersiz kılar.
    protected override void Render(HtmlTextWriter writer) 
    {
    	 writer.Write("Hello World from custom control");
    }
    
    NotHtmlTextWriter sınıfı, bir metin akışına HTML yazma işlevlerini vardır. HtmlTextWriter</a0> sınıfının <a2>Yaz</a2> yöntemi, belirtilen HTTP yanıt akışı metne dönüştürür ve Response.Write yöntemini aynıdır.
  8. Sınıf kitaplığı Projeyi derleyin. Bu DLL çıktı oluşturur.
  9. Yeni bir ASP.NET Web uygulaması proje oluşturmak veya varolan bir'ı açın.
  10. Özel Denetim kullanılabilir bir Web Forms sayfasına ekleyin.
  11. Sınıf kitaplığı başvuru ASP.NET proje başvurular bölümünde ekleyin.
  12. Web Forms sayfasında özel denetimi Kaydet.
    <%@ Register TagPrefix="CC " Namespace=" CustomServerControlsLib " Assembly="CustomServerControlsLib " %>
  13. Örneğini veya özel denetimi Web Forms sayfasında kullanmak için <form>etiketlerinde aşağıdaki kod satırını ekleyin.
    <form id="Form1" method="post" runat="server">
        <CC:SimpleServerControl id="ctlSimpleControl" runat="server">
        </CC:SimpleServerControl >
    </form>
    
    NotSimpleServerControl bu kod sınıf kitaplığı içindeki Denetim sınıfı adıdır.
  14. Web Form Sayfası'nı çalıştırın ve özel denetim çıktısını bir randevu oldu?unu görecektir.
Visual Studio'nun kullanıyorsanız, aşağıdaki adımları gerçekleştirmeniz gereken:
  1. Herhangi bir metin düzenleyicisini açın.
  2. SimpleServerControl.cs adlı bir dosya oluşturun ve 1 ile 14 adımlarda verilen kod yazın.
  3. PATH değişkeni içinde aşağıdaki yolu Ekle:
    <a1>c:\Windows</a1> (winnt)\Microsoft.Net\Framework\v1.1.4322
  4. Bir komut istemi'ni başlatın ve SimpleServerControl.cs varsa konuma gidin.
  5. Aşağıdaki komutu çalıştırın:
    csc /t:library /out: CustomServerControlsLib. SimpleServerControl.dll /r:System.dll /r:System.Web.dll SimpleServerControl.cs
    C# derleyicisi (csc.exe) hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
    http://msdn2.microsoft.com/en-us/library/1700bbwd(vs.71).aspx
  6. Özel denetim Web Forms sayfasında çalıştırmak için aşağıdakileri yapın:
    1. Wwwroot klasörünün altındaki bir dizin oluşturun.
    2. Internet ınformation Services (IIS) Yöneticisi'ni başlatın ve yeni bir dizin sanal kök dizini olarak işaretleyin.
    3. Bir depo gözü klasör altında yeni bir dizin oluşturun.
    4. Özel denetim DLL'I, depo gözü klasörüne kopyalayın.
    5. Yeni bir dizin içinde bir önceki adımda oluşturduğunuz örnek Web Forms sayfayı yerleştirin.
    6. Örnek sayfa, IIS Yöneticisi'nden çalıştırın.
Basit bir özel denetim yerleşik, artık bu özel denetimi özelliklerini ve Tasarım zamanı öznitelikleri nasıl bakalım.

Özel denetimi özelliklerini nasıl kullanılır

Ben önceki örneği temel oluşturmak ve Web Forms sayfasında özel denetimi kullanırken yapılandırılabilir bir veya daha fazla özellik sunar.

Aşağıdaki örnek denetiminden bir ileti görüntüleyecek bir özellik tanımlamak denetimi özelliğinde belirtildiği zaman, belirli sayıda gösterilmiştir:
  1. SimpleServerControl.cs bir metin düzenleyicisinde açın.
  2. Bir özellik SimpleServerControl sınıfında ekleyin. Genel sınıf
    public class SimpleServerControl : Control
    {
       private int noOfTimes;
       public int NoOfTimes
       {
           get { return this.noOfTimes; }
           set { this.noOfTimes = value; }
       } 
       protected override void Render (HtmlTextWriter writer)
       {
         for (int i=0; i< NoOfTimes; i++)
         {
           write.Write("Hello World.."+"<BR>");
         } 
       }
    }
    
  3. Özel denetim derleyin.
  4. Özel denetim Web Forms sayfasında kullanmak için <a0></a0>, Denetim bildirimi için yeni özellik eklemek.
    <CC:SimpleServerControl id="ctlSimpleControl" NoOfTimes="5" runat="server"></CC:SimpleServerControl>
  5. Sayfa çalıştıran "denetim özelliği içinde belirtilen ileti Merhaba Dünya" sayısı kadar özel denetiminden olarak görüntüler.

Tasarım zamanı öznitelikleri özel denetimi uygulama

Tasarım zamanı öznitelikleri neden gereklidir
Önceki örnekte oluşturulmuş özel denetimi beklendiği gibi çalışır. Ancak, Visual Studio'da denetleyen kullanmak isterseniz, tasarım zamanında bir özel denetim seçildiğinde, Properties penceresinde otomatik olarak vurgulanmasını NoOfTimes özelliğini isteyebilirsiniz.

Bunun gerçekleşmesini sağlamak için <a0></a0>, Visual Studio Öznitelikler denen bir özelliği kullanarak yapabileceğiniz Visual Studio'nun meta veri bilgi sağlamak gerekir. Öznitelikler sınıf, yöntem, özellik veya alan tanımlayabilirsiniz. Visual Studio'nun özel denetim sınıfı yüklediğinde sınıf, yöntem, özellik veya alan düzeyinde tanımlanan tüm öznitelikleri denetler ve özel denetim davranışını tasarım zamanında buna göre değişir.

Öznitelikleri hakkında daha fazla bilgi için <a0></a0>, aşağıdaki MSDN Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/Aa288059(VS.71).aspx
Diyelim yaygın olarak kullandığı bir örnek oluşturma özniteliklerini kullanılır:
  1. SimpleServerControl.cs bir metin düzenleyicisinde açın.
  2. Sınıf düzeyinde bazı temel öznitelikleri, DefaultPropertyToolboxData ve TagPrefixAttrbute sunar. Biz bu üç özniteliği üzerinde bizim örnek oluşturmak.
            [
    	// Specify the default property for the control.		
    	DefaultProperty("DefaultProperty"),
    	
    	// Specify the tag that is written to the aspx page when the
            // control is dragged from the Toolbox to the Design view. 
    	// However this tag is optional since the designer automatically 
    	// generates the default tag if it is not specified.		
    	ToolboxData("<{0}:ControlWithAttributes runat=\"server\">" +
    		"</{0}:ControlWithAttributes>")
    	]
    	public class ControlWithAttributes : Control
    	{
    		private string _defaultProperty;
    		public string DefaultProperty
    		{
    			get { return "This is a default property value"; }
    			set { this._defaultProperty = value; }
    		}
    
    		protected override void Render(HtmlTextWriter writer)
    		{
    			writer.Write("Default Property --> <B>" + 
    			DefaultProperty + "</B>");
    		}
             }
    
  3. TagPrefixAttrbute adlı tek bir daha fazla etiket yok. Denetim Araç kutusundan tasarımcıya sürüklediğinizde bir önek için bir etiket sağlayan bir derleme düzeyi özniteliğidir. Aksi halde, Tasarımcı "cc1" gibi bir önek, varsayılan olarak oluşturur. TagPrefixAttrbute denetim sınıfına doğrudan uygulanmaz. TagPrefixAttrbute uygulama AssemblyInfo.cs açın, aşağıdaki kod satırını ekleyin ve proje.
    [assembly:TagPrefix("ServerControlsLib ", "MyControl")]
    Not, komut satırını kullanarak kaynağı oluşturmak istiyorsanız, daha sonra yeniden için gereken AssemblyInfo.cs dosyası oluşturun tüm kaynak dosyalarını içeren dizin dosyasına yerleştirin ve denetimi oluşturmak için aşağıdaki komutu çalıştırın:
    csc /t:library >/out: ServerControlsLib.dll /r:System.dll /r: System.Web.dll *.cs

Kullanıcı denetimleri ve özel denetimler arasındaki temel farklar nelerdir?

Kullanıcı denetimleri ve özel denetimleri nelerdir ve bunları oluşturma konusunda temel bir fikriniz vardır, artık bir hızlı ikisi arasındaki farklar bakalım.
Bu tabloyu kapaBu tabloyu aç
EtkenlerKullanıcı denetimiÖzel denetimi
DağıtımTek uygulama senaryoları için tasarlanmış.

Kaynak formu (.ascx) uygulama kaynak kodu ile birlikte dağıtılabilir.

Birden çok uygulamada kullanılmak üzere aynı denetimi gerekiyorsa, artıklık ve bakım sorunları getirir
Böylece, birden çok uygulama tarafından kullanılabilmesi için tasarlanmış

Uygulamanın Bin dizinini veya genel birleştirme önbelleği

Kolayca ve sorunsuz artıklık ve bakımı ile ilişkili
OluşturmaOluşturma, benzer şekilde, Web Forms sayfalarıdır oluşturulan; uygun hızlı uygulama geliştirme (RAD):Tasarımcı desteklenmemektedir çünkü çok fazla kod yazma içerir.
IçeriğiSabit bir düzen içinde statik içerik gerektiğinde çok daha iyi seçim, örneğin, üstbilgiler ve altbilgiler yaptığınızDaha fazla için uygulamanın dinamik gerektirdiğinde uygun görüntülenecek içerik; veri dinamik satır tablo denetimle ilişkili için örneğin, bir uygulama kullanılabilmesinden
TasarımYazma, tasarım zamanında sunulur ve genellikle statik veri içeren çok uygulama tasarlama gerektirmezYazma sıfırdan denetimin ömrünü ve normal olarak alınmış kullanıcı denetimlerinde ele, sipariş, olayları execute, iyi bir sahibi olmanız gerekir.

Ileri düzey konular

Daha gelişmiş özelliklerini özel denetimler geliştirirken kullanabileceğiniz birkaç bakalım.

Durum Yönetimi

Web uygulamaları, durum bilgisi olmayan HTTP üzerinde oluşturulmuştur. Sayfa alt denetimlerinin her istekte oluşturulur ve istek üzerine sonra aktiften. Klasik ASP programlama durumda tutmak için <a0></a0>, oturum ve uygulama nesneleri kullanın. Ancak, bu kodlama çok yapmanız gerekir. Bunu önlemek için <a0></a0>, ASP.NET, görünüm durumu durum bakımını yapmak, birden fazla isteğin sağlanabilmesi için bilinen bir düzenek sağlar. Durum yönetimi ve görünüm durumu hakkında daha fazla bilgi için aşağıdaki MSDN Web sitelerini ziyaret edin:
Durum Yönetimi Web Forms Giriº
http://msdn2.microsoft.com/en-us/library/75x4ha6s(vs.71).aspx

ASP.NET görünüm durumu
http://msdn.microsoft.com/msdnmag/issues/03/02/cuttingedge/default.aspx

Kaydetme Web Forms görünüm durumu kullanarak sayfa
http://msdn2.microsoft.com/en-us/library/4yfdwycw(vs.71).aspx
Görünüm durumu, özel bir denetim içinde kullanan örnek
ViewStateExample.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;

namespace ServerControlLib
{
	/// <summary>
	/// When a page framework reloads this control after postback, it   
        /// will restore the values which are in view state.
	/// This control can easily perform state management without 
        /// implementing our own logic for maintaining the state.
	/// </summary>
	public class ViewStateExample : WebControl
	{
		// Text to be displayed in Text box control.
		private string _text;
		
		/*
		 * This property needs to be populated before every 
                 * postback in order to 
		 * retain its value.
		*/ 
		public string Text
		{
			get { return (_text == null) ? "_text property is empty"  : _text; }
			set { _text = value; }
		}

		/*
		 * This property needs to be filled once and should be 
                 * available on the successive postbacks.
		*/ 
		public string TextInViewState
		{
			get
			{
				object o = ViewState["TextInViewState"];
				return (o == null) ? "View state is empty" : (string)o;
			}
			set { ViewState["TextInViewState"] = value; } 
		}

		/*
		 * Over-ridden method on WebControl base class which                   
                 * displays both of the property values 
		 * i.e. one stored in view state and other which is not 
                 * saved in view state.
		*/
		protected override void RenderContents(HtmlTextWriter writer)
		{
			writer.Write("Text Without View State = ");
			writer.Write(Text);
			writer.Write("<hr><br>");
			writer.Write("Text In View State = ");
			writer.Write(TextInViewState);
		}
	}
}
Örnek Web Forms sayfasında bir önceki denetimi kullanma
ViewStateExampleDemo.aspx
<%@ Page Language="C#" %>
<%@ Register TagPrefix="CC" Namespace="ServerControlLib" Assembly = "ServerControlLib" %>

<html>
  <head>
    <script runat="server">
      void button1_Click(object sender, EventArgs e)
      {
          Control1.Text = textbox1.Text;
          Control1.TextInViewState = textbox2.Text;
      }
    </script>
  </head>
  <body>
    <form runat="server" ID="Form1">
      <br>
      Property Value Without View State: <asp:TextBox id="textbox1" 
        runat="server" />
      <br>
      Property Value with View State: <asp:TextBox id="textbox2" 
        runat="server" />

      <asp:Button text="Cause Postback" onClick="button1_Click" 
        id="button1" Runat="server" />

      Output from the ViewStateExample Control :
      <CC:ViewStateExample id="Control1" runat="server"/>
    </form>
  </body>
</html>

Oluşturma

Bu bölümde, BANA Denetim sınıfı veya sınıf WebControl özel bir denetim oluşturmak, geçersiz kılmak hangi yöntemleri kısaca.
System.Web.uı.Control sınıfı yöntemleri oluşturma
System.Web.uı.Control sınıfı oluşturma yöntemleri hakkında bilgi için aşağıdaki MSDN Web sitelerini ziyaret edin:
Control.Render yöntemi
http://msdn2.microsoft.com/en-us/library/system.web.ui.control.render(vs.71).aspx

Control.RenderControl yöntemi
http://msdn2.microsoft.com/en-us/library/system.web.ui.control.rendercontrol(vs.71).aspx

Control.RenderChildren yöntemi
http://msdn2.microsoft.com/en-us/library/system.web.ui.control.renderchildren(vs.71).aspx
Denetim sayfada nasıl oluşturulur
Her sayfayı, bu sayfa için tüm alt denetimlerin topluluğu gösteren bir denetim ağacına vardır. Denetim ağacı oluşturmak için <a0></a0>, HtmlTextWriter sınıfın bir nesnesi oluşturulur istemci bilgisayara işlenecek HTML içerir. Bu nesne RenderControl yönteme geçirildi. Sırayla RenderControl yöntem oluşturma yöntemini çağırır. Sonra oluşturma yöntemi koleksiyonun sonuna ulaşılıncaya kadar döngü özyinelemeli yapmadan, her alt denetim üzerinde RenderChildren yöntemini ça??r?r. Bu işlem, en iyi tarafından aşağıdaki kod örneği açıklanmıştır.
public void RenderControl(HtmlTextWriter writer) 
{
    // Render method on that control will only be called if its visible property is true.
    if (Visible)
    {
        Render(writer);
    }
}

protected virtual void Render(HtmlTextWriter writer) 
{
    RenderChildren(writer);
}
protected virtual void RenderChildren(HtmlTextWriter writer) 
{
    foreach (Control c in Controls) 
    {
        c.RenderControl(writer);
    }
} 
System.Web.uı.WebControl sınıfı yöntemleri oluşturma
System.Web.uı.WebControl sınıfı oluşturma yöntemleri hakkında bilgi için aşağıdaki MSDN Web sitelerini ziyaret edin:
WebControl.RenderBeginTag yöntemi
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.renderbegintag(vs.71).aspx

WebControl.RenderContents yöntemi
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.rendercontents(vs.71).aspx

WebControl.RenderEndTag yöntemi
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.renderendtag(vs.71).aspx
Nasıl WebControl sınıfı oluşturma işlemi gerçekleştirilir.
Aşağıdaki kod örneği, özel denetim için <a2>Oluştur</a2> yöntemini gösterir.
protected override void Render(HtmlTextWriter writer)
{
    RenderBeginTag(writer);
    RenderContents(writer);
    RenderEndTag(writer);
}
WebControl sınıfı için <a2>Oluştur</a2> yöntemini geçersiz kılın gerekmez. Içeriği WebControl sınıfı oluşturmak istiyorsanız, RenderContents yöntemi geçersiz kılmak gerekir. Ancak, oluşturma yöntemi geçersiz kılmak istiyorsanız, önceki kod örneğinde gösterilen özel sırada RenderEndTag yöntemi yan? s?ra RenderBeginTag yöntemi geçersiz gerekir.

Sonuç

Tüm alan şimdilik kullanıcı denetimleri ve ASP.NET 1.0 ve ASP.NET 1.1 özel denetimleri. Umarım bu sütun ve bunları geliştirmek için kullanabileceğiniz bir çeşitli yaklaşımlar arasındaki temel farklar anlamanıza yardımcı olur.

Zaman için teşekkürler. Özel denetimlerin, durum yönetimi denetimi stilleri, birleşik denetimleri ve özel denetimler için Tasarım zamanı desteği gibi gelişmiş konuları hakkında daha fazla yakın gelecekte yazmak bekler.

Denetimleri hakkında daha fazla bilgi için aşağıdaki MSDN Web sitelerini ziyaret edin:
ASP.NET sunucu denetimi geliştirme temelleri
http://msdn2.microsoft.com/en-us/library/aa310918(vs.71).aspx

Kullanıcı denetimlerinin kapsamlı bir inceleme
http://msdn2.microsoft.com/en-us/library/ms972975.aspx

Yapı templated özel ASP.NET sunucu denetimleri
http://msdn2.microsoft.com/en-us/library/Aa478964.aspx

ASP.NET sunucu denetimleri için olaylar
http://msdn2.microsoft.com/en-us/library/aa720049(vs.71).aspx

Kullanıcı denetimi ve bileşik Denetim
http://msdn2.microsoft.com/en-us/library/aa719735(vs.71).aspx

ASP.NET sunucu denetimleri geliştirme.
http://msdn2.microsoft.com/en-us/library/aa719973(vs.71).aspx

Özel denetimler geliştirme: kavramlar anahtar
http://msdn2.microsoft.com/en-us/library/aa720226(vs.71).aspx

ASP.NET denetimleri için Tasarım zamanı desteği ekleme
http://msdn2.microsoft.com/en-us/library/Aa478960.aspx
Her zaman olarak, gelecekte sütunları adreslenmiş istediğiniz konuları veya bilgi bankasının Ask For It formunu kullanarak fikir gönderme bildirmekten çekinmeyin.

Özellikler

Makale numarası: 893667 - Last Review: 14 Kasım 2007 Çarşamba - Gözden geçirme: 1.8
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Anahtar Kelimeler: 
kbmt kbhowto kbasp KB893667 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:893667

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com