This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

XhtmlTextWriter الفئة

Visual Studio 2010

قم بكتابة لغة تمييز النص التشعبي قابلة الامتداد (XHTML)-أحرف معينة، بما في ذلك الجميع التباينات من الوحدات النمطية XHTML ينحدر من XTHML، إلى دفق إخراج لخادم ASP.NET عنصر تحكم للأجهزة المحمولة. يمنع XhtmlTextWriterفئة لتوفير رسم هندسي XHTML المخصصة لصفحات ASP.NET وملقم عناصر التحكم.

مساحة الاسم:  System.Web.UI
التجميع:  System.Web (في System.Web.dll)

public class XhtmlTextWriter : HtmlTextWriter

XHTML هي لغة علامات XML متوافق مع، استناداً إلى 4.1 HTML، الذي يسمح لك بإنشاء مواقع ويب غير مناسب للجهاز عدة أنواع. أنه يدمج سهولة استخدم التي يوفرها HTML مع الإرشادات الصارمة العنصر الموفر من قبل XML إلى إنتاج لغة علامات بنطاق واسع من خيارات التنسيق والأنماط والغموض علامة ترميز أقل. XhtmlTextWriter فئة إمكانات تنسيق لذلك الملقم ASP.NET عناصر التحكم عند تقديم XHTML المحتوى للعملاء. يمكنك استخدام SetDocTypeأسلوب إلى تحديد الذي اكتب XHTML كاتب نص renders. اعتماد مستندات الأنواع المعرفة في XhtmlMobileDocTypeالتعداد.

XhtmlTextWriter فئة يعرض مجموعتين من السمات عناصر. التعيين هو التعيين من السمات عام، كالمشار إليه في CommonAttributesخاصية. الالتعيين ثانية هو التعيين من السمات الخاصة بعنصر، كالمشار إليه في ElementSpecificAttributesخاصية. لمزيد من المعلومات حول العناصر و الأنماط التي يتم تقديمها، راجع مواصفات modularization XHTML في http://انتقال.microsoft.com/fwlink/?linkid=37125 .

يمكنك استخدام الأعضاء XhtmlTextWriterفئة وأي اشتقاق الفئات إلى إنشاء cusإلىm كتاب النص إلى استخدام محولات صفحة XHTML cusإلىm أو فئة محولات. يمكنك أيضا إنشاء فئات مشتقة هذا التجاوز قياسي سلوك XhtmlTextWriterفئة.

بشكل افتراضي، عند العمل مع المستعرضات التي تدعم HTML 4.0، الصفحات ASP.NET وعناصر تحكم عرض ترميز التي هو متوافقة مع قياسي XHTML 1.1. لمزيد من المعلومات، راجع XHTML و ASP.NET.

HtmlTextWriter إخراج XHTML إلا إذا قمت بتكوين ASP.NET بشكل خاص إلى لا يؤدي إلى جعل ترميز XHTML. لمزيد من المعلومات، راجع كيفية: تكوين العرض XHTML في مواقع ويب ASP.NET.

تعليمات برمجية مثال في هذا القسم يحتوي على الرابع أجزاء. يوضح المثال أول كيفية إلى إنشاء فئة مشتقة. يوضح المثال تعليمات برمجية الثاني كيفية إلى بإنشاء عنصر تحكم cusإلىm. المثال الثالث من تعليمات برمجية يوضح كيفية استخدام المخصصة عنصر تحكم. مثال التعليمة البرمجية الرابع يوفر التعليمة البرمجية التي هو المطلوبة لتشغيل عنصر التحكم المخصص.

يوضح المثال التعليمات البرمجية التالي كيفية إنشاء مخصص للفئات التي هو مشتقة من XhtmlTextWriterclass. تحتوي المنشئات الثاني، الذي هو القياسية لكافة الفئات التي يورث بشكل مباشر أو غير مباشر من HtmlTextWriterفئة. يأخذ المنشئ أول TextWriterالكائن كـ معلمة وقم باستدعاء المنشئ الثاني، قيم المعلمات pكـsing اثنين التالية:

وهذا تعليمات برمجية المثال كما يوضح كيفية يمنع OnAttributeRenderو OnStyleAttributeRenderوظائف لإجراء تصفية لنص بحجم ولون النمط، على التوالي. بالإضافة إلى ذلك، فإنه يبطل في BeginRenderو EndRenderسلسلة وظائف لكتابة نص قبل و بعد أن تم تقديم عنصر تحكم.


using System;
using System.IO;
using System.Web;
using System.Security.Permissions;
using System.Web.UI;
using System.Web.UI.Adapters;
using System.Web.UI.WebControls.Adapters;

namespace Samples.AspNet.CS
{
    // Create a class that inherits from XhtmlTextWriter.
    [AspNetHostingPermission(SecurityAction.Demand, 
        Level=AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
        Level=AspNetHostingPermissionLevel.Minimal)] 
    public class CustomXhtmlTextWriter : XhtmlTextWriter
    {
        // Create two constructors, following 
        // the pattern for implementing a
        // TextWriter constructor.
        public CustomXhtmlTextWriter(TextWriter writer) : 
            this(writer, DefaultTabString)
        {
        }


        public CustomXhtmlTextWriter(TextWriter writer, string tabString) : 
            base(writer, tabString)
        {
        }


        // Override the OnAttributeRender method to 
        // allow this text writer to render only eight-point 
        // text size.
        protected override bool OnAttributeRender(string name, 
          string value, 
          HtmlTextWriterAttribute key) 
        {
            if (key == HtmlTextWriterAttribute.Size)
            {
                if (String.Compare(value, "8pt") == 0)
                {
                    return true;
                }
                else
                {
                   return false;
                } 
             }
             else
             {
                 return base.OnAttributeRender(name, value, key);
             }

         }

        // Override the OnStyleAttributeRender
        // method to prevent this text writer 
        // from rendering purple text.
        protected override bool OnStyleAttributeRender(string name, 
            string value, 
            HtmlTextWriterStyle key)
        {
            if (key == HtmlTextWriterStyle.Color)
            {
                if (String.Compare(value, "purple") == 0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
            else
            {
                return base.OnStyleAttributeRender(name, value, key);
            }        
        }  

        // Override the BeginRender method to write a
        // message and call the WriteBreak method
        // before a control is rendered.
        override public void BeginRender()
        {
           this.Write("A control is about to render.");
           this.WriteBreak();
        }

        // Override the EndRender method to
        // write a string immediately after 
        // a control has rendered. 
        override public void EndRender()
        {
           this.Write("A control just rendered.");
        }  

    }
}


يلي تعليمات برمجية مثال يوضح كيفية إنشاء مخصصة Labelعنصر بالاسم TestLabelومحول مخصص يسمى XhtmlTestLabelAdapterالذي يعرض محتويات عنصر التحكم ك XHTML.


using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.Adapters;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.Adapters;

namespace AspNet.Samples
{
	// Create a simple class that inherits
    // from the Label class.
	public class TestLabel : Label
	{
		private String _textValue;

		// Override the Text property.
		public override string Text
		{
			get
			{
				return (string)ViewState["Text"];
			}
			set
			{
				ViewState["Text"] = value;
			}
		}
	}
	public class XhtmlTestLabelAdapter : WebControlAdapter
	{
		// Create a control property that accesses the
		// methods and properties of the control.
		protected TestLabel Control
		{
			get
			{
				return (TestLabel)base.Control;
			}
		}

		protected override void Render(HtmlTextWriter writer)
		{
			// Create an instance of the XhtmlTextWriter class,
			// named w, and cast the HtmlTextWriter passed 
			// in the writer parameter to w.
			XhtmlTextWriter w = new XhtmlTextWriter(writer);

			// Create a string variable, named value, to hold
			// the control's Text property value.
			String value = Control.Text;

			
            // Create a Boolean variable, named attTest,
            // to test whether the Style attribute is 
            // valid in the page that the control is
            // rendered to.
            Boolean attTest = w.IsValidFormAttribute("style");

            // Check whether attTest is true or false.
            // If true, a style is applied to the XHTML
            // content. If false, no style is applied.
			if (attTest)
				w.EnterStyle(Control.ControlStyle);

			// Write the Text property value of the control,
            // a <br> element, and a string.
            w.Write(value);
            w.WriteBreak();
            w.Write("This control conditionally rendered its styles for XHTML.");

            // Check whether attTest is true or false.
            // If true, the XHTML style is closed.
            // If false, nothing is rendered.
            if (attTest)
                w.ExitStyle(Control.ControlStyle);
		}

	}

}


مثال التعليمة البرمجية التالية يوضح كيفية استخدام عنصر تحكم مخصص TestLabelتشغيل عنصر صفحة ويب ASP.NET.


<%@ Page Language="C#" %>
<%@ Import Namespace="AspNet.Samples" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    TestLabel tl = new TestLabel();
    tl.ID = "TestLabel1";
    PlaceHolder1.Controls.Add(tl);

  }
</script>


<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>XHtmlTextWriter Example</title>
</head>
<body>
    <form id="form1" runat="server" >
    <div>
      <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>    
    </div>
    </form>
</body>
</html>


إلى استخدم the مخصص عنصر تحكم في the preceding تعليمات برمجية مثال, إضافة the following <controlAdapters> عنصر إلى واحد of الثاني ملفات. You can إضافة it إلى the appropriate آلة-wide ملف في the subdirectory for a specific مستعرض, كـ a subfolder of the .NET Framework تكوين الدليل. Alternatively, you can إضافة it إلى a مخصص مستعرض ملف في the App_Browsers الدليل under the ويب تطبيق جذر.

<controlAdapters>
   <adapter controlType="AspNet.Samples.TestLabel"
   adapterType="AspNet.Samples.XhtmlTestLabelAdapter" />
</controlAdapters>

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: