سؤال

ماهو الفرق بين <asp:Panel > و <asp:PlaceHolder > في ASP.NET؟

متى يجب عليك استخدام واحد على الآخر؟

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

المحلول

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

نصائح أخرى

لا يعرض العنصر النائب أي علامات لنفسه، لذا فهو رائع لتجميع المحتوى دون تحميل علامات HTML الخارجية.

تحتوي اللوحة على علامات HTML خارجية ولكنها تحتوي على بعض الخصائص الإضافية الرائعة.

  • عنوان URL للصورة الخلفية:يحصل/تعيين عنوان URL لصورة الخلفية للوحة

  • محاذاة أفقية:يحصل على/يحدد
    المحاذاة الأفقية لمحتويات الوالد

  • طَوّق:يحصل/يحدد ما إذا كان
    يلتف محتوى اللوحة

هناك مقالة جيدة في startvbnet هنا.

التحكم في حامل المكان

استخدم عنصر التحكم PlaceHolder كحاوية لتخزين عناصر تحكم الخادم التي تتم إضافتها بشكل حيوي إلى صفحة الويب.لا يُنتج عنصر التحكم PlaceHolder أي مخرجات مرئية ويتم استخدامه فقط كحاوية لعناصر التحكم الأخرى على صفحة الويب.يمكنك استخدام ال Control.Controls مجموعة لإضافة عنصر تحكم أو إدراجه أو إزالته في عنصر التحكم PlaceHolder.

لوحة التحكم

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

ال Direction تفيد الخاصية في ترجمة محتوى عنصر تحكم اللوحة لعرض نص للغات المكتوبة من اليمين إلى اليسار، مثل العربية أو العبرية.

يوفر عنصر تحكم اللوحة العديد من الخصائص التي تسمح لك بتخصيص السلوك وعرض محتوياته.استخدم ال BackImageUrخاصية l لعرض صورة مخصصة للوحة التحكم.استخدم ال ScrollBars الخاصية لتحديد أشرطة التمرير لعنصر التحكم.

اختلافات صغيرة عند عرض HTML:لن يعرض عنصر تحكم PlaceHolder أي شيء، ولكن سيتم عرض عنصر تحكم اللوحة كـ <div>.

مزيد من المعلومات في منتديات ASP.NET

وأنا علة غريب * في استوديو البصرية 2010، إذا وضعت الضوابط داخل عنصر نائب أنها لا تجعلها في وضع طريقة عرض التصميم.

وهذا ينطبق بشكل خاص على Hidenfields وتسميات فارغة.

وأنا أحب أن استخدام العناصر النائبة بدلا من لوحات ولكن أنا أكره حقيقة أنا غير قادر على وضع ضوابط أخرى داخل النائبة في وقت التصميم في واجهة المستخدم الرسومية.

كما هو مذكور في الإجابات الأخرى، تقوم اللوحة بإنشاء ملف <div> في HTML، في حين أن PlaceHolder لا يفعل ذلك.ولكن هناك الكثير من الأسباب التي تجعلك تختار أيًا منهما.

لماذا حامل المكان؟

نظرًا لأنه لا ينشئ أي علامة خاصة به، يمكنك استخدامه بأمان داخل عنصر آخر لا يمكن أن يحتوي على ملف <div>, ، على سبيل المثال:

<table>
    <tr>
        <td>Row 1</td>
    </tr>
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</table>

يمكنك أيضًا استخدام PlaceHolder للتحكم في رؤية مجموعة من عناصر التحكم دون تغليفها في ملف <div>

<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible="false">
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:PlaceHolder>

لماذا لوحة

فهو يولد الخاصة به <div> ويمكن استخدامه أيضًا لتغليف مجموعة من عناصر التحكم.لكن تحتوي اللوحة على الكثير من الخصائص التي يمكن أن تكون مفيدة لتنسيق محتواها:

<asp:Panel ID="Panel1" runat="server" Font-Bold="true"
    BackColor="Green" ForeColor="Red" Width="200"
    Height="200" BorderColor="Black" BorderStyle="Dotted">
    Red text on a green background with a black dotted border.
</asp:Panel>

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

<asp:Panel ID="Panel1" runat="server" DefaultButton="Button1">
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <br />
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
        ErrorMessage="Input is required" ValidationGroup="myValGroup"
        Display="Dynamic" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="myValGroup" />
</asp:Panel>

جرب المقتطف أعلاه بالضغط enter داخل TextBox1

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