كيفية إنشاء إخراج HTML بدون أ) ترتيب البيانات أو ب) باستخدام الاستجابة. write؟

StackOverflow https://stackoverflow.com/questions/405508

سؤال

نوع من المرتبطة بي سؤال آخر - لقد استخدمت HTMLControls فقط مع Runat = "Server" و WebControls على مضض ، مفضلين التحكم في الترميز الذي يتم إنشاؤه (بما في ذلك معرفات العناصر ، إلخ).

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

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

المحلول

عندما تقول "DataBinding" ، هل تتحدث عن ربط نتيجة قاعدة بيانات تم تعيينها على GridView أو مكرر ، إلخ. عبر مكالمة .bind () ، أو فقط باستخدام أي عنصر تحكم في خادم ASP.NET (أو التحكم في خادم HTML) بشكل عام؟

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

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

 <asp:Literal ID="ltrResults" runat="server" />

نصائح أخرى

لا يوجد شيء يمنعك من التكرار على مجموعتك مباشرة في صفحة ASPX الخاصة بك.

 <ul>
     <% foreach(Person person in this.People) {%>

         <li><%=person.Firstname %> <%=person.Lastname %></li>

     <% } %>
 </ul>

في هذا المثال ، يكون الأشخاص خاصية قائمة على CodeBehind الخاص بي. ستجد العديد من مشاريع ASP.NET MVC تستخدم هذه الطريقة.

brownie ... نعم ، لكن هذه هي عبارات استجابة

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

يتم استخدام التحكم في المكرر بالضبط ما تريد. إنه عنصر تحكم في الخادم ، لكنك تحدد ما يتم إنشاؤه HTML في القوالب. هل تفعل Databind ، ولكن ليس مجرد اختصار لحلقة يدوية؟

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