سؤال

لقد تعلمت مؤخرًا كيفية كتابة WebControls الخاصة بي، لكنني ما زلت غير متأكد من الفرق بين Render وRenderControl.لقد بدأت باستخدام Render، ولكن في مرحلة ما بدأت باستخدام RenderControl، والذي أستخدمه الآن حصريًا.إذا كنت أقوم بتكوين عادة سيئة، أود التخلص منها في مهدها الآن قبل أن أبدأ في طريقي.

هل كانت مفيدة؟

المحلول

يتم استخدام RenderControl إذا كان هناك عنصر تحكم موجود يوفر ما تريده حتى تتمكن من الاستفادة من كيفية عرضه.

يتم استخدام العرض إذا كنت بحاجة إلى التحكم الكامل في كيفية عرض HTML.

يمكنك بالطبع الجمع بين الاثنين لتحقيق الاستخدام الأمثل لوقت البرمجة الخاص بك ...

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

نصائح أخرى

إليك قراءة جيدة:تقديم مقابل RenderControl

مقتطف من الروابط:

ال يجعل طريقة تمكن تحكم لتقديم نفسها عن طريق الكتابة إخراج HTML إلى دفق الاستجابة.هذا يمر إشارة إلى كائن HTMLTextWriter ، والذي يمكنه الكتابة مباشرة إلى دفق الاستجابة.هذا يجب استخدام الطريقة عند اشتقاق مباشرة من السيطرة.

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

يعتبر Render طريقة محمية، مما يعني أن الفئات المشتقة فقط هي التي يمكنها الوصول إليها.يتم استدعاؤه ضمن دورة حياة الحدث، ولا ينبغي استدعاؤه بشكل صريح في التعليمات البرمجية الخاصة بك.

RenderControl هي طريقة عامة تسمح لك باستدعاء طريقة Render عندما تريد.يمكنك استخدامه، على سبيل المثال، في عنصر تحكم مخصص حيث تقوم بتخزين عناصر التحكم في ControlsCollection ولكنك تريد عرضها في الخلية الخاصة بها في الجدول.على سبيل المثال:

   writer.Write(""):
   foreach(Control ctl in Controls)
   {
      writer.Write("")
      ctl.RenderControl(writer);
      writer.Write("");
   }
   writer.Write("");

يجب عليك دائمًا تجاوز Render، وليس RenderControl، كما يطلق عليه في دورة حياة الحدث (كما قلت سابقًا)

(من http://forums.asp.net/t/909220.aspx/1, ، آسف، إجابتي هي مجرد نسخ ولصق من ذلك، لكنني لم أر فائدة كبيرة في إعادة كتابة مثل هذا التفسير الواضح تمامًا)

ما زلت لا أفهم لماذا لم يجعل MS Render() طريقة عامة.لماذا يعتبر RenderControl() المنفصل ضروريًا؟السبب وراء ذلك مفقود من جميع الإجابات المقدمة حتى الآن.أول شخص يمكنه شرح ذلك يحصل على تصويت إيجابي.

ويستخدم RenderControl للصفحة لتقديم عناصر التحكم التابعة. تقديم يسمح عنصر تحكم الفردية لتقديم نفسها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top