Mvc views页面中需要通过Checkbox选择批量删除,查了一下资料发现checkbox有点诡异,但问题还是解决了。

view页面部分代码:

 <tr class="Row_1" onmouseover="c=this.className;this.className='Row_Focus';" onmouseout="this.className=c;">
            <td class="fontC">
                <input type="checkbox" id="CheckData" name="CheckData" value="<%=Html.Encode(item.ID) %>" />
            </td>

…………………………………………

<asp:Content ID="BO" ContentPlaceHolderID="BatchOperations" runat="server" >
    <label for="CheckAllHander"><input id="CheckAllHander" type="checkbox" onclick="selectAll(this);" />全选/清除</label>
    <input type="submit" id="BtnDeleteHander" name="BtnDeleteHander" class="inputBtn" value="删除" onclick="return Delete();" />
</asp:Content>

 

通过js判断是否有选择项。

 

接下来 Controller里:

 

 [AcceptVerbs(HttpVerbs.Post)] 
         public ActionResult Index(FormCollection collection) 

         { 
           List<string> list = new List<string>(); 
           string Pattern ="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}";
           foreach (var item in System.Text.RegularExpressions.Regex.Matches(collection.GetValue("CheckData").AttemptedValue, Pattern)) 
             { 
                list.Add(item.ToString()); 
             }
           if (list.Count > 0)
           {
               for (int i = 0; i < list.Count; i++)
               {
                   Guid id = new Guid(list[i].ToString());
                   Easy_ em = easy.FindSing(id);
                   if (em == null)
                       return View("Error");
                   else
                   {
                       try
                       {
                           easy.Delete(em);
                           easy.Save();
                       }
                       catch(Exception ex)
                       {
                           return View("Error");
                       }
                   }
               }
           }
            return RedirectToAction("Index");
         }

需要的Models里:

 

  public Easy_ FindSing(Guid id)
        {
            return db.Easy_.SingleOrDefault(d => d.ID == id);
        }

        /// <summary>
        /// 添加及修改的方法
        /// </summary>
        /// <value>Easy_</value>
        public void Add(Easy_ item)
        {
            db.Easy_.InsertOnSubmit(item);
        }
        /// <summary>
        /// 删除的方法

        /// </summary>
        /// <value>Easy_</value>
        public void Delete(Easy_item)
        {
            db.Easy_.DeleteOnSubmit(item);
        }

        /// <summary>
        /// 保存的方法

        /// </summary>
        /// <value>Easy_</value>
        public void Save()
        {
            db.SubmitChanges();
        }

 

posted on 2010-05-26 15:35  longwei  阅读(1344)  评论(0编辑  收藏  举报