سؤال

أحاول عرض بياناتي (الصور) في عمودين من الجدول في عرضي الجزئي. لا يبدو أن الرمز أدناه يعمل لأنه يعرض كل صورة في صفها الخاص. ماذا ينقصني؟

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Import Namespace="ULS_Site.Models"%>

<%var alternating = false;%>
<table>
<% foreach (var item in ViewData.Model as IEnumerable<image>) %>
<%{%>
<%if (!alternating) %>
<%{ %>
<tr>
<%}; %>

<td>
    <a href="<%= item.image_path %>" target="_blank" >
    <img src="<%= item.image_path %>" alt=" "  width="100"  />
    </a>
</td>
<%if (!alternating) %>
<%{ %>
</tr>
<%}; %>
<%alternating = !alternating;%>
<%}%>
</table>
هل كانت مفيدة؟

المحلول

<%if (alternating) %>
<%{ %>
</tr>
<%}; %>

تحرير: عند إغلاق tr, ، سوف تحتاج إلى عكس الحالة.
هذا لن يغلق tr حتى الخط alternative = !alternating; أعدم.

Edit2: أيضا، لماذا تفتح وإغلاق <%= و %> على كل من الخط، عندما لا تزال في وضع التعليمات البرمجية؟

أي ليست هناك طريقة نظيفة لكتابة ذلك؟

<%if (alternating)
{%>
</tr>
<%}; %>

نصائح أخرى

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

<ul>
  <% foreach (var item in ViewData.Model as IEnumerable<image>) { %>
    <li>
      <a href="<%= item.urlPath %>">
        <img src="<%= item.imagePath %>" alt="" /></li>
  <% } %>
</ul>

يمكن أن يكون CSS بسيطا مثل هذا:

ul {
  width:200px; /* twice the individual LI width */
}
ul li {
  height:60px;
  width:100px;
  margin:0;
  padding:0;
  float:left;
  list-style-type:none;
}

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

<script type="text/javascript">
  $(function() {
    $("li:odd").css("background-color", "#F00");
  });
</script>

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

جرب هذا، سيحل ذلك مشكلتك في تقديم أعمدة لكل صف في المائدة.

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<%@ Import Namespace="ULS_Site.Models"%>

<%var alternating = true;%>

<table>
<% foreach (var item in ViewData.Model as IEnumerable<image>) %>
<%{%>
<%if (alternating) %>
<%{ %>
<tr>
<%}; %>
<td>
<a href="<%= item.image_path %>" target="_blank" >    
<img src="<%= item.image_path %>" alt=" "  width="100"  />
</a>
</td>
<%if (!alternating) %>
<%{ %>
</tr>
<%}; %>
<%alternating = !alternating;%>
<%}%>
</table>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top