如何知道WebGrid中的选定行

时间:2014-11-07 09:50:19

标签: jquery html asp.net-mvc-4 razor model-view-controller

我的要求是:在网格中显示数据,并且还可以从那里选择几行。用户选择行后,可以按一个按钮来处理选定的行数据。

为实现这一目标,我在WebGrid中添加了一个额外的列,即一个复选框,如下所示: grid.column("MyColumn",format:@<text><input type="checkbox" name="Select"></text>)

但问题是,如何知道按下按钮时选择了哪些行?我想,我应该在复选框中添加一些事件处理程序,并将那些选定的检查行保存在某个变量中,并在按钮按下事件上发送这些行数据。 Snapshot of my web content

添加了WebContenet的快照,我想在按钮点击时处理所选行。

如果这是正确的,请告诉我,可以在MVC中完成或建议我任何替代方式。

1 个答案:

答案 0 :(得分:0)

根据本文Get Checked Rows In a Webgrid Using Checkbox MVC3提示,您可以尝试以下方法:

将包含WebGrid的div包装在要提交的表单中

@using (Html.BeginForm("Assign","Home"))
{
  <div id="grid">
     @grid.GetHtml(
         tableStyle: "grid",
         headerStyle: "head",
         alternatingRowStyle: "webgrid-alternating-row",
         columns: grid.Columns(grid.Column(header: "Assign?", format:@<text><input class="check-box"  id="assignChkBx"name="assignChkBx" type="checkbox" value="@item.Id"/></text>)))
  </div>     
  <p><input type ="submit" value ="Submit" /></p>
}

假设如上所述,定义一个控制器以从webgrid

获取所选行的复选框值
[HttpPost]  
public ActionResult Assign(FormCollection form)
{   
    //get collection of selected ids
    var chckedValues = form.GetValues("assignChkBx");

    //You can use each object if u wish from id
    foreach (var id in chckedValues)
    {
       //get object example..  Customer Customer = Customers.find(id);
       //Your Method here like send an item to customer
    }
    return RedirectToAction("index");
}