أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

نظرة عامة حول عناصر تحكم المستخدم مقابل عناصر التحكم المخصصة

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

اضغط هنا لرابط المقالة باللغة الانجليزية893667
عمود "الصوت دعم" ASP.NET

نظرة عامة حول عناصر تحكم المستخدم مقابل عناصر التحكم المخصصة

لتخصيص هذا العمود إلى احتياجاتك، نحن نريد دعوة بإرسال الأفكار حول المواضيع التي تهمك و الموجهة المشكلات التي تريد راجع مقالات قاعدة المعارف في المستقبل والأعمدة الصوت الدعم. يمكنك إرسال باستخدام نموذج Ask For It الأفكار والملاحظات. يوجد أيضاً ارتباط إلى النموذج في أسفل هذا العمود.
مقدمة حول
عالي! هذا هو Parag ثم أنا مهندس دعم تعمل مع مجموعة دعم Microsoft ASP.NET تزيد عن سنة الآن. قبل إلى الانضمام إلى Microsoft ، التوقف عن العمل به على المشاريع المستندة إلى ويب وتطبيقات سطح المكتب باستخدام تقنيات Microsoft. أثناء توفير الدعم الجودة للعملاء, قمت مشاهدة الحالات حيث توجد بعض الارتباك حول عناصر التحكم المخصصة و فقط أرغب تستغرق بعض الوقت لشرح بعض المفاهيم حول عناصر التحكم المخصصة. تعتقد أنها تالفة كما أنه يبدو أنه لي ، بمجرد الحصول على تعليق منه ستكون في موقع أفضل نقدر ASP.NET.

نظرة عامة حول

في العمود هذا الشهر سوف لمناقشة المواضيع التالية:
  • ما هي عناصر تحكم المستخدم "؟
  • ما هي عناصر التحكم المخصصة ؟
  • ما هي الاختلافات الأساسية بين عناصر التحكم المستخدم وعناصر التحكم المخصصة ؟
سوف أيضاً تقديم بعض مواضيع المتقدمة التي ببرامج عناصر التحكم المخصصة مثل حالة وإدارة عرض عناصر التحكم المخصصة.

ما هي عناصر تحكم المستخدم "؟

تكون عناصر تحكم المستخدم عناصر التحكم المخصصة ، القابل لإعادة الاستخدام ثم استخدام نفس الأساليب التي باستخدام بواسطة HTML وعناصر ملقم ويب. كان يقدم طريقة سهلة تقسيم الشائعة واجهات المستخدم وإعادة استخدامها عبر تطبيقات ويب ASP.NET. تستخدم طراز "نماذج ويب" نفس برمجة الذي يعمل صفحة "نماذج ويب". للحصول على مزيد من التفاصيل حول "نماذج ويب" البرمجة طراز بزيارة مواقع شبكة مطوري Microsoft (MSDN) التالي على الويب:
مقدمة إلى صفحات "نماذج ويب"
http://msdn2.microsoft.com/en-us/library/65tcbxz3(vs.71).aspx

نموذج التعليمات البرمجية نماذج ويب
http://msdn2.microsoft.com/en-us/library/015103yb(vs.71).aspx

كيفية إنشاء عنصر تحكم المستخدم

يشبه بناء الجملة التي تستخدمها لإنشاء عنصر تحكم مستخدم مع بناء الجملة التي تستخدمها لإنشاء صفحة "نماذج ويب" (.aspx). الاختلاف الوحيد لا يتضمن عنصر تحكم مستخدم <html>، <body>، و <form>عناصر منذ صفحة "نماذج ويب" تستضيف عنصر تحكم المستخدم. لإنشاء عنصر تحكم مستخدم اتبع الخطوات التالية:
  1. افتح النص أو محرر HTML ثم إنشاء كتلة تعليمات برمجية من جانب الخادم تعريض كافة في خصائص وأساليب الأحداث.
    <script language="C#" runat="server">   public void button1_Click(object sender, EventArgs e)   {      label1.Text = "Hello World!!!";   }</script>
  2. إنشاء واجهة مستخدم لعنصر تحكم المستخدم.
    <asp:Label id="label1" runat="server"/> <br><br><asp:button id="button1" text="Hit" OnClick="button1_Click" runat="server" />

كيفية استخدام عنصر تحكم مستخدم في صفحة "نماذج ويب"

  1. إنشاء صفحة جديدة "نماذج ويب" (.aspx) في Microsoft Visual Studio .NET 2002 أو Microsoft Visual Studio .NET 2003 Microsoft Visual Studio 2005 أو أي محرر نصوص.
  2. قم بتعريف التوجيه @ تسجيل. على سبيل المثال، استخدم التعليمات البرمجية التالية.
    <%@ Register TagPrefix="UC" TagName="TestControl" Src="test.ascx" %>
    افتراض ملاحظة عنصر تحكم المستخدم وصفحة نماذج ويب الموجودة في نفس الموقع.
  3. لاستخدام عنصر تحكم المستخدم في صفحة "نماذج ويب" تستخدم التعليمة البرمجية التالية بعد التوجيه @ تسجيل.
    <html>    <body>          <form runat="server">               <UC:TestControl id="Test1" runat="server"/>          </form>    </body>  </html>

كيفية إنشاء مثيل من عنصر تحكم المستخدم بشكل برمجي في التعليمات البرمجية خلف ملف صفحة "نماذج ويب"

المثال السابق إنشاء مثيل من عنصر تحكم مستخدم بشكل إلزامي في صفحة "نماذج ويب" باستخدام التوجيه @ تسجيل. ومع ذلك، يمكن إنشاء مثيل عنصر تحكم مستخدم بشكل حيوي ثم إضافته إلى الصفحة. فيما يلي خطوات القيام التي:
  1. إنشاء صفحة "نماذج ويب" جديد في Visual Studio.
  2. الانتقال إلى التعليمات البرمجية خلف تم إنشاء هذه الصفحة "نماذج ويب" ملف.
  3. في الحدث Page_Load فئة الصفحة الكتابة 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);
    ملاحظة يمكنك إضافة عنصر تحكم مستخدم بشكل حيوي في أحداث معينة من دورة حياة الصفحة.

    لمزيد من المعلومات، قم بزيارة مواقع الويب التالية:
    إضافة عناصر تحكم إلى صفحة "ويب نماذج" برمجياً
    http://msdn2.microsoft.com/en-us/library/kyt0fzt1(vs.71).aspx

    دورة حياة تنفيذ عنصر التحكم
    http://msdn2.microsoft.com/en-us/library/aa719775(vs.71).aspx

    عناصر تحكم ويب حيوية و postbacks بحالة العرض بواسطة Mitchell سكوت
    http://aspnet.4guysfromrolla.com/articles/092904-1.aspx

كيفية معالجة عنصر تحكم المستخدم

عند طلب صفحة مع عنصر تحكم مستخدم يحدث ما يلي:
  • يوزع ملف .ascx المحدد في سمة Src في التوجيه @ تسجيل محلل الصفحة ويقوم بإنشاء فئة مشتقة من فئة System.Web.UI.UserControl.
  • المحلل اللغوي ثم بشكل حيوي برمجيًا الفئة في تجميع.
  • إذا كنت تستخدم Visual Studio ، ثم في وقت التصميم فقط ، Visual Studio بإنشاء التعليمات برمجية خلف ملف لعنصر التحكم المستخدم ثم precompiled الملف بواسطة مصمم نفسه.
  • وأخيراً، فئة عنصر تحكم المستخدم الذي تم إنشاؤه خلال عملية توليد تعليمات برمجية الحيوية التحويل البرمجي ، تحتوي على تعليمات برمجية التعليمات البرمجية خلف ملف (. ascx.cs) بالإضافة إلى التعليمات البرمجية كتابتها داخل الملف .ascx.

ما هي عناصر التحكم المخصصة ؟

عناصر التحكم المخصصة هي مكونات التعليمات البرمجية المترجمة تنفيذ على الملقم كشف طراز الكائن وعرضه نص العلامات مثل HTML أو XML، كما يفعل عنصر تحكم "نموذج ويب" أو مستخدم عادي.

كيفية اختيار الفئة الأساسية لعنصر التحكم المخصص

لكتابة عنصر تحكم مخصص الذي يجب أن أو غير مباشر اشتقاق فئة جديدة من فئة System.Web.UI.Control أو من فئة System.Web.UI.WebControls.WebControl:
  • يجب أن ينحدر من System.Web.UI.Control إذا أردت عنصر تحكم لتقديم عناصر nonvisual. على سبيل المثال، <meta><head>هي أمثلة nonvisual التقديم.
  • يجب أن ينحدر من System.Web.UI.WebControls.WebControl إذا أردت عنصر تحكم لتقديم HTML التي تنشئ واجهة مرئية على جهاز الكمبيوتر العميل.
إذا كنت ترغب في تغيير وظيفة عناصر التحكم الموجودة مثل زر أو تسمية، يمكنك الحصول على فئة جديدة مع هذه الفئات الموجودة مباشرة وتغيير السلوك الافتراضي الخاصة بها.

في brief توفر الفئة التحكم الوظائف الأساسية التي يمكنك وضعه في شجرة التحكم لفئة الصفحة. يضيف فئة WebControl الوظيفة إلى الفئة التحكم الأساسية لعرض محتوى مرئي على جهاز الكمبيوتر العميل. على سبيل المثال، يمكنك استخدام فئة WebControl للتحكم في مظهر وأنماط خلال خصائص مثل الخطوط والألوان الارتفاع.

كيفية إنشاء عنصر تحكم مخصص بسيط يمتد من System.Web.UI.Control باستخدام Visual Studio

  1. بدء تشغيل Visual Studio.
  2. إنشاء مشروع مكتبة فئة و بإعطاء اسم للملف CustomServerControlsLib على سبيل المثال،.
  3. إضافة ملف مصدر إلى المشروع على سبيل المثال، SimpleServerControl.cs.
  4. قم بتضمين مرجع مساحة الاسم System.Web في المقطع مراجع.
  5. التحقق ما إذا كان يتم تضمين مساحات الأسماء التالية في الملف SimpleServerControl.cs.
    SystemSystem.CollectionsSystem.ComponentModelSystem.DataSystem.WebSystem.Web.SessionStateSystem.Web.UISystem.Web.UI.WebControls
  6. ترث الفئة SimpleServerControls مع الفئة الأساسية التحكم.
    public class SimpleServerControl : Control
  7. تجاوز أسلوب تقديم كتابة الإخراج إلى دفق إخراج.
    protected override void Render(HtmlTextWriter writer) {	 writer.Write("Hello World from custom control");}
    ملاحظة تحتوي فئة HtmlTextWriter وظائف الكتابة HTML إلى تدفق نص. أسلوب الكتابة الفئة HtmlTextWriter إخراج النص المحدد إلى دفق استجابة HTTP وهو نفس أسلوب Response.Write.
  8. ترجمة المشروع مكتبة الفئة. فإنه سيقوم بإنشاء إخراج DLL.
  9. افتح موجودة أو إنشاء مشروع جديد تطبيق ويب ASP.NET.
  10. إضافة صفحة "نماذج ويب" حيث يمكن استخدام عنصر التحكم المخصص.
  11. إضافة مرجع إلى مكتبة الفئة في المقطع مراجع المشروع ASP.NET.
  12. تسجيل عنصر تحكم مخصص على صفحة "نماذج ويب".
    <%@ Register TagPrefix="CC " Namespace=" CustomServerControlsLib " Assembly="CustomServerControlsLib " %>
  13. استخدم عنصر التحكم المخصص على الصفحة "نماذج ويب" أو إنشاء مثيل إضافة السطر التالي من التعليمات البرمجية في العلامات <form>.
    <form id="Form1" method="post" runat="server">    <CC:SimpleServerControl id="ctlSimpleControl" runat="server">    </CC:SimpleServerControl ></form>
    ملاحظة في هذه التعليمة البرمجية SimpleServerControl هو اسم فئة عنصر التحكم داخل مكتبة الفئة.
  14. قم بتشغيل الصفحة "نماذج ويب" ثم سترى الإخراج من عنصر التحكم المخصص.
إذا لم تكن تستخدم Visual Studio تحتاج إلى تنفيذ الخطوات التالية:
  1. فتح أي محرر نصوص.
  2. قم بإنشاء ملف يسمى SimpleServerControl.cs ثم كتابة التعليمات البرمجية كما هو محدد في الخطوات من 1 إلى 14.
  3. في المتغيّر إضافة المسار التالي:
    c:\windows (winnt)\Microsoft.Net\Framework\v1.1.4322
  4. قم بتشغيل موجه الأوامر ثم انتقل إلى موقع موجود SimpleServerControl.cs.
  5. قم بتشغيل الأمر التالي:
    csc /t:library/الخارج: CustomServerControlsLib. /r:System.Web.dll /r:System.dll SimpleServerControl.dll SimpleServerControl.cs
    لمزيد من المعلومات حول المحول C# البرمجي (csc.exe) قم بزيارة موقع MSDN التالي:
  6. لتشغيل عنصر التحكم المخصص على الصفحة "نماذج ويب" القيام بما يلي:
    1. إنشاء دليل ضمن المجلد wwwroot.
    2. بدء تشغيل إدارة خدمات معلومات إنترنت لـ Microsoft (IIS) ووضع علامة دليل جديد كدليل جذر ظاهري.
    3. إنشاء مجلد سلة تحت الدليل الجديد.
    4. نسخ عنصر التحكم المخصص DLL في مجلد سلة.
    5. وضع نموذج الصفحة "نماذج ويب" التي قمت بإنشائها في الخطوات السابقة داخل الدليل الجديد.
    6. تشغيل نموذج الصفحة من "إدارة IIS.
والآن إنشاء "عنصر تحكم مخصص بسيط" ، لنتعرف كيفية عرض خصائص تطبيق سمات وقت التصميم على عنصر التحكم المخصص.

كيفية كشف خصائص على عنصر التحكم المخصص

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

يظهر المثال التالي كيف يتم تعريف خاصية بعرض رسالة من عنصر التحكم في عدد معين من المرات كما هو محدد في خاصية عنصر التحكم:
  1. افتح SimpleServerControl.cs في محرر نص.
  2. إضافة خاصية في فئة SimpleServerControl. الفئة العامة
    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. التحويل البرمجي لعنصر التحكم المخصص.
  4. لاستخدام عنصر تحكم مخصص على صفحة "نماذج ويب" إضافة خاصية جديدة إلى تعريف عنصر التحكم.
    <CC:SimpleServerControl id="ctlSimpleControl" NoOfTimes="5" runat="server"></CC:SimpleServerControl>
  5. تشغيل الصفحة يعرض الرسالة "مرحباً العالم" من عنصر التحكم المخصص عدة مرات كما هو محدد في خاصية عنصر التحكم.

كيفية تطبيق سمات وقت التصميم على عنصر التحكم المخصص

لماذا المطلوبة سمات وقت التصميم
يعمل عنصر التحكم المخصص إنشاؤه في المثال السابق كما هو متوقع. ومع ذلك، إذا كنت تريد استخدام عنصر التحكم في Visual Studio قد تريد الخاصية NoOfTimes يمكن تمييز تلقائياً في الإطار "خصائص" عند تحديد عنصر التحكم المخصص في وقت التصميم.

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

للبحث عن المزيد من المعلومات حول سمات قم بزيارة موقع MSDN التالي: دعنا إنشاء نموذج يستخدم بشكل شائع استخدام السمات:
  1. افتح SimpleServerControl.cs في محرر نص.
  2. تقديم بعض الأساسية السمات مستوى الفئة على سبيل المثال، DefaultPropertyToolboxData و TagPrefixAttrbute. سوف نقوم البناء الخاص بنا نموذج على هذه السمات الثلاثة.
            [	// 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. وهو سمة مستوى التجميع الذي يوفر بادئة علامة عند سحب عنصر التحكم من مربع الأدوات إلى المصمم. وإلا، يقوم المصمم بإنشاء بادئة مثل "cc1" بشكل افتراضي. لا يتم تطبيق TagPrefixAttrbute مباشرة إلى فئة عنصر التحكم. تطبيق TagPrefixAttrbute فتح AssemblyInfo.cs ضمّن السطر التالي من التعليمات البرمجية ومن ثم قم بإعادة إنشاء في المشروع.
    [assembly:TagPrefix("ServerControlsLib ", "MyControl")]
    ملاحظة إذا كنت تريد إنشاء المصدر باستخدام سطر الأوامر، تحتاج إلى إنشاء ملف AssemblyInfo.cs وضع الملف في الدليل الذي يحتوي على كافة ملفات المصدر ثم قم بتشغيل الأمر التالي لإنشاء عنصر التحكم:
    > csc /t:library/الخارج: /r /r:System.dll ServerControlsLib.dll: *.cs System.Web.dll

ما هي الاختلافات الأساسية بين عناصر التحكم المستخدم وعناصر التحكم المخصصة ؟

والآن لديك فكرة أساسية ما عناصر التحكم المستخدم وعناصر التحكم المخصصة وكيفية إنشائها دعنا إلقاء نظرة سريعة على الاختلافات بينهما.
العواملعنصر تحكم المستخدمعنصر تحكم مخصص
النشرلقد تم تصميم وحدات سيناريو التطبيق واحد

نشر في النموذج المصدر (.ascx) مع التعليمات البرمجية المصدر التطبيق

إذا احتاج نفس عنصر التحكم المراد استخدامها في أكثر من تطبيق واحد, يقدم التكرار "و" مشاكل الصيانة
تصميم بحيث يمكن استخدامها من قبل أكثر من تطبيق واحد

نشر إما في الدليل سلة التطبيق أو في ذاكرة التخزين المؤقتة للتجميع العمومي

توزيع بسهولة وبدون المشاكل المقترنة التكرار والصيانة
إنشاءيتم إنشاء بنفس الطريقة صفحات "نماذج ويب" يتم إنشاؤه; well-suited لتطوير التطبيقات سريع (RAD)تتضمن الكتابة الكثير من التعليمات البرمجية لأنه لا يوجد أي دعم المصمم
المحتوىمقدار أفضل اختيار عند الحاجة محتوى ثابت ضمن تخطيط ثابت, على سبيل المثال، عند إنشاء رؤوس الصفحات وتذييلاتهاأكثر تتلاءم تطلب أحد تطبيقات الحيوي المحتوى لعرضه; يمكن إعادة استخدامها عبر تطبيق ما، على سبيل المثال، بالنسبة بيانات بربط عنصر تحكم جدول مع الصفوف الحيوية
تصميملا يتطلب كتابة حجم التطبيق تصميم بسبب كتابة وقت التصميم كما غالباً تحتوي على بيانات ثابتةيتطلب الكتابة من البداية فهم جيدة من دورة حياة عنصر التحكم والترتيب الذي يتم تنفيذ الأحداث ، الذي هو عادة أخذ تتولى في عناصر تحكم المستخدم

مواضيع متقدمة

بعد ذلك، لنتعرف على عدد قليل من الميزات المتقدمة التي قد تستخدم أثناء تطوير عناصر التحكم المخصصة.

إدارة الحالة

يتم إنشاء تطبيقات ويب على HTTP بدون الحالة. صفحة به عناصر تحكم فرعية تم إنشاؤها على كل طلب و يتم التخلص من بعد الطلب عبر. للحفاظ على حالة في البرمجة ASP الكلاسيكية استخدام جلسة عمل وكائنات التطبيق. ولكن ذلك، تحتاج إلى تنفيذ الكثير من التعليمات البرمجية. لتجنب ذلك، ASP.NET توفر تقنية تعرف على أنها بحالة العرض لصيانة حالة عبر عدة طلبات. لمزيد من المعلومات حول حالة إدارة "و" طريقة العرض "الحالة" ، قم بزيارة مواقع ويب MSDN التالي:
مقدمة إلى "نماذج ويب" إدارة الحالة
http://msdn2.microsoft.com/en-us/library/75x4ha6s(vs.71).aspx

حالة العرض ASP.NET
http://msdn.microsoft.com/msdnmag/issues/03/02/cuttingedge/default.aspx

نماذج ويب حفظ الصفحة قيم باستخدام بحالة العرض
http://msdn2.microsoft.com/en-us/library/4yfdwycw(vs.71).aspx
المثال باستخدام حالة العرض في عنصر تحكم مخصص
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);		}	}}
المثال باستخدام عنصر التحكم السابق على صفحة "نماذج ويب"
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>

التقديم

في هذا المقطع سوف مختصراً ما هي أساليب يجب تجاوز عند اشتقاق عنصر تحكم مخصص من الفئة التحكم أو فئة WebControl.
تقديم أساليب الفئة System.Web.UI.Control
للحصول على معلومات حول أساليب تقديم فئة System.Web.UI.Control بزيارة مواقع ويب MSDN التالي:
كيفية تقديم عنصر تحكم على الصفحة
يحتوي كل صفحة شجرة عنصر تحكم الذي يمثل مجموعة من كافة عناصر التحكم التابعة لهذه الصفحة. لعرض شجرة عنصر التحكم الفئة HtmlTextWriter يتم إنشاء كائن التي تتضمن HTML سيتم عرضها على جهاز الكمبيوتر العميل. يتم تمرير الكائن إلى أسلوب RenderControl. وبالنتيجة، استدعاء الأسلوب RenderControl أسلوب تقديم. ثم، المكالمات أسلوب تقديم أسلوب RenderChildren على التحكم التابعة لكل إجراء حلقة متكرر إلى أن يتم الوصول إلى نهاية المجموعة. يتم شرح هذه العملية بشكل أفضل بواسطة التعليمة البرمجية الموجودة في المثال التالي. عام
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.UI.WebControl
للحصول على معلومات حول أساليب تقديم فئة System.Web.UI.WebControl بزيارة مواقع ويب MSDN التالي:
كيفية تقديم فئة WebControl حدوث
يعرض المثال التعليمات البرمجية التالي طريقة تقديم عنصر التحكم المخصص.
protected override void Render(HtmlTextWriter writer){    RenderBeginTag(writer);    RenderContents(writer);    RenderEndTag(writer);}
لا تحتاج إلى تجاوز أسلوب تقديم لفئة WebControl. إذا كنت ترغب في تقديم محتويات داخل فئة WebControl تحتاج إلى تجاوز أسلوب RenderContents. ومع ذلك، إذا كنت لا تزال تريد تجاوز أسلوب تقديم يجب تجاوز أسلوب RenderBeginTag بالإضافة إلى أسلوب RenderEndTag في ترتيب معين الذي يظهر في مثال التعليمة البرمجية السابقة.

نهاية

هذا كل الآن على عناصر التحكم المستخدم وعناصر التحكم المخصصة في ASP.NET 1.0 و ASP.NET 1.1. نرجو أن هذا العمود يساعدك فهم الاختلافات الأساسية بين و الطرق المختلفة التي يمكنك اتخاذها لتطوير عليها.

أشكرك على الوقت الخاص بك. ومن المتوقع كتابة المزيد حول المواضيع المتقدمة لعناصر تحكم مخصصة إدارة حالة والأنماط التحكم عناصر تحكم مركب دعم وقت التصميم عناصر التحكم المخصصة في المستقبل بالقرب.

للحصول على مزيد من المعلومات حول عناصر التحكم بزيارة مواقع ويب MSDN التالي:
أساسيات تطوير عنصر تحكم ملقم ASP.NET
http://msdn2.microsoft.com/en-us/library/aa310918(vs.71).aspx

examination شاملة من عناصر تحكم المستخدم
http://msdn2.microsoft.com/en-us/library/ms972975.aspx

عناصر المبنى templated تحكم ASP.NET المخصصة، الملقم
http://msdn2.microsoft.com/en-us/library/Aa478964.aspx

الأحداث في عناصر تحكم ASP.NET الملقم
http://msdn2.microsoft.com/en-us/library/aa720049(vs.71).aspx

تحكم مركب مقابل عنصر تحكم المستخدم
http://msdn2.microsoft.com/en-us/library/aa719735(vs.71).aspx

تطوير عناصر تحكم ASP.NET الملقم
http://msdn2.microsoft.com/en-us/library/aa719973(vs.71).aspx

تطوير عناصر التحكم المخصصة: المفتاح المفاهيم
http://msdn2.microsoft.com/en-us/library/aa720226(vs.71).aspx

إضافة دعم وقت التصميم إلى عناصر تحكم ASP.NET
http://msdn2.microsoft.com/en-us/library/Aa478960.aspx
دوماً تتردد في إرسال الأفكار على المواضيع التي تريد معالجتها في المستقبل أعمدة أو في المعارف باستخدام نموذج Ask For It.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 893667 - آخر مراجعة: 11/14/2007 09:20:09 - المراجعة: 1.8

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbmt kbhowto kbasp KB893667 KbMtar
تعليقات
;did=1&t="> = 1; var Route = "76500"; var Ctrl = ""; document.write(" languagesListForLargeScreens track by $index -->
Venezuela - Español
/body>p;did=1&t=">0&did=1&t=">lickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("