2010-12-10 107 views
0

我有一個觀點作爲保存數據在asp.net mvc的

<div class="main_content"> 
    <div class="form_container"> 
     <h1> 
      Save Build Document Revision</h1> 
     <ul> 
      <li> 
       <%=Html.Hidden("TotalRows", Model.ToList().Count)%> 
       <table id="ListBuild" border="0" cellpadding="0" cellspacing="0" class="instruction_grid"> 
        <tr> 
         <th align="left" class="link_sl_no"> 
          Build document 
         </th> 
         <th align="left" class="link_title"> 
          Revision 
         </th> 
        </tr> 
        <% foreach (var item in Model) 
         { %> 
        <tr id="<%= Html.Encode(item.BldDocId) %>" style="width: auto"> 
         <td> 
          <label id="BldDoc<%= Html.Encode(item.BldDocId) %>" class="BldDoc"> 
           <%= Html.Encode(item.BldDocTitle) %></label> 
         </td> 
         <td> 
          <select id="Rev<%= Html.Encode(item.BldDocId) %>" name="Revision" class="BldDocRev" 
           style="width: auto;"> 
           <% for (int i = 1; i <= item.BldDocMaxRevision; i++) 
            { %> 
           <option value="' <%=i %> '"> 
            <%=i %></option> 
           <%} %> 
          </select> 
         </td> 
        </tr> 
        <% } %> 
       </table> 
      </li> 
      <li> 
       <div class="button_panel"> 
        <input name="button" type="submit" class="btn_create_doc flotted" id="SaveBldDocRev" 
         value="Save" /> 
       </div> 
      </li> 
     </ul> 
    </div> 
    <%--</div> 
    </div>--%> 
    <div class="clear"> 
    </div> 
</div> 

時節省的就是點擊我需要在表中保存的值到數據庫中。這怎麼能實現?

回答

0

我想也許你錯過了窗體標籤是第一件事。您的隱藏輸入中已經有了全部行。我覺得你差點做到了。只需在代碼中進行一些修改即可。

  1. 您應該爲您的標籤命名並按順序選擇編號。如從1行到全行。例如: 「類=」 BldDoc「> <%=了Html.Encode(item.BldDocTitle)%> 其中i是增量數

  2. 也應該把item.BldDocId在隱藏的輸入。

  3. 當你收到後行動的FormCollection控制器,你可以簡單地將數據插入到數據庫遞歸。

如果你不明白我剛纔說的,讓我知道!

下面是t他查看頁面。

<form method="post" action=""> 
    <input type="hidden" name="TotalRows" value="<%=Model.ToList().Count%>" /> 
    <table> 
     <% int i=1; %> 
     <% foreach(var item in Model) { %> 
     <tr> 
      <td> 
       <label name="label_<%=i%>"><%=item.value1%></label> 
       <select name="select_<%=i%>"> 
        <% foreach(var s in selectvalue) { %> 
        <option value="<%=s.value%>"> 
         <%=s.text%> 
        </option> 
        <% } %> 
       </select> 
      </td> 
     </tr> 
     <% i++; %> 
     <% } %> 
    </table> 
</form> 

而且您的控制器應該是這樣的:

[HttpPost] 
public ActionResult Action(FormCollection collection) 
{ 
    int totalRows = Convert.ToInt32(collection["TotalRows"]); 
    for (int i = 1; i <= totalRows; i++) 
    { 
      string labelValue = collection["label_" + i]; 
      string selectValue = collection["select_" + i]; 

      //your insert method here 
    } 

    return View(); 
} 

我給上面的例子。如果你不明白,只是讓我知道...

+0

我只包括我的看法的主要部分。我不明白標籤名稱的增量值。奧爾多我如何訪問下拉列表的選定值。我正在嘗試爲此使用Jquery。這會有幫助嗎? – 2010-12-10 11:55:53