2012-05-17 66 views
0

我使用的是帶有EF的ASP.NET MVC 4。asp.net mvc webgrid更新選定的行(複選框)

我想在每一行的末尾添加複選框。(此複選框是不是在我的模型)

grid.Column("Verified", format: @<text><input name="cbVerify" type="checkbox" value="@??"/></text>) 
... 
@Html.ActionLink("Verified", "Verified", "Items") 

而且所選行我要更新所有選定的記錄

[HttpPost] 
    public ActionResult Edit(items items) 
    { 
     if (ModelState.IsValid) 
     { 
      db.items.Attach(items); 
      items.status = 4 ; //verified 
      items.date_verif = Datetime.Now; 
      db.ObjectStateManager.ChangeObjectState(items, EntityState.Modified); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(items); 
    } 
    public ActionResult Verified() 
    { 
     //var req = Request[""];?? 
     foreach(// selected rows) 
     { 
      //Edit(items); ? 
     } 
     return RedirectToAction("Index"); 
    } 

問:如何從一個按鈕更新幾個選定的行?

回答

0

你可以做的只是將值設爲你正在更新的項目的ID(或者如果你甚至沒有那個,從1到行數的計數器),在視圖中是這樣的:


@using (Html.BeginForm()) { 
    <input type="checkbox" name="verify" value="1" /> 
    <input type="checkbox" name="verify" value="2" /> 

    <input type="submit" value="Submit" /> 
} 

然後在控制器後的動作,只取的(在我的情況)整數的數組,並所討論的ID或行號碼是否被張貼在陣列中的作用。

所以操作方法是這樣的,我(但你顯然會對之前的其他參數,如您的視圖模型):


[HttpPost] 
public ActionResult Index(int[] verify) 
{ 
    return View(); 
}