2010-09-16 50 views
0

我有以下幾個將枚舉模型並添加發票和日期。 然後,我希望有一張表,其中包含每張發票可摺疊的發票行項目。我不知道如何在枚舉模型時如何做到這一點,我不知道如何唯一地標識表,然後我不知道如何告訴jquery函數我們需要隱藏哪個表。帶有枚舉列表的JQuery隱藏表

這裏是我現在的代碼。我在我想要隱藏的表旁邊添加了一條評論。上面有一個錨標籤,它調用jQuery隱藏功能的javascript函數是

<table class="themedtable" 
    cellspacing="0"> 
    <tr> 
     <th style="text-align: left"> 
      Invoice 
     </th> 
     <th> 
      Order Date 
     </th> 
    </tr> 
    <% foreach (var item in Model) 
     { %> 
    <tr> 
     <td style="text-align: left"> 
      <strong> 
       <%=Html.Encode(item.Invoice)%></strong> 
     </td> 
     <td> 
      <%=Html.Encode(String.Format("{0:d}",item.invcte))%> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <a href="javascript:toggletable()">Show/Hide Table</a> 
     </td> 
    </tr> 
    <%if (item.LineItemList.Count > 0) 
    { %> 
    <tr> 
     <td> 
      <table style="margin-left: auto; margin-right: auto; width: 90%" cellspacing="0"> //this is the table i need to id and collapse when the above link is clicked 
       <tr> 
        <th> 
         Part 
        </th> 
        <th> 
         Desc 
        </th> 
        <th> 
         Qty 
        </th> 
        <th> 
         Qty Shipped 
        </th> 
        <th> 
         Status 
        </th> 
       </tr> 
       <%foreach (var lineItem in item.LineItemList) 
        { %> 
       <tr> 
        <td style="width: 10%"> 
         <%=Html.Encode(lineItem.Partno) %> 
        </td> 
        <td style="width: 50%"> 
         <%=Html.Encode(lineItem.Description) %> 
        </td> 
        <td style="width: 10%"> 
         <%=Html.Encode(lineItem.Qty) %> 
        </td> 
        <td style="width: 20%"> 
         <%=Html.Encode(lineItem.QtyShipped) %> 
        </td> 
        <td style="width: 10%"> 
         <%=Html.Encode(lineItem.Status) %> 
        </td> 
       </tr> 
       <%} %> 
      </table> 
     </td> 
    </tr> 
    <%} %> 
    <%} %> 
</table> 

<script type="text/javascript"> 
    function toggletable() { 
     $(//selector).hide(); 
    } 

回答

1

這是我的兩個美分的價值。我想你可能會以一種會讓你的生活變得艱難的方式來接近這一點。

我會做的是以下幾點。

  1. 添加您的發票,如果你喜歡和 附加一個點擊事件給他們。
  2. 點擊發票後,使用jQuery執行一個Ajax 回發,獲取 訂單項。
  3. 然後,您的ActionResult應該抓取 這些訂單項,將它們傳遞給 部分視圖並將 PartialView返回給客戶端。
  4. 然後在您的成功jQuery Ajax 方法中,將 div的內容替換爲返回的HTML。

這可以節省頁面上的大量數據,並且使其看起來非常整齊。

+0

我喜歡這個想法,我會與之合作。謝謝!您是否認爲有一種方法可以識別div並將其提供給ajax方法,以便它直接顯示在點擊的發票號碼下方,但位於下一個發票號碼的上方? – twal 2010-09-16 14:22:44

+1

是的。但你不需要。您可以使用jQuery將新的HTML直接放置在點擊元素之後,從而否定自己找到元素並放置新元素的需要。 jQuery負責所有這些 – griegs 2010-09-16 22:24:37