已选中的复选框动态地与值从数据库在mvc4

本文关键字:数据库 mvc4 复选框 动态 | 更新日期: 2023-09-27 18:16:19

我根据数据库中的现有数据制作了一个动态复选框。为了存储到数据库,我使用每个复选框中包含的id。问题是,当我想编辑数据并返回复选框的值时,复选框不是动态选中的。我需要知道的是如何使复选框动态检查时,编辑页面根据已存储在数据库中的id加载。

这里是我的一些代码

编辑视图

  @foreach (var item in Model.ModulList) // for generated dynamic checkboxes
   {
     <tr>
       <td>
        <input type="checkbox" data-toggle="checkbox" name="SelectedModuls" Value ="@item.ModulID">@item.ModulName  // Got stuck in this session

       </td>
      </tr>
    }
在控制器

 public ActionResult Edit(int id)
    {
       return View(DAM.GetMenuById(id));
    }

数据访问函数GetMenuById(id)

public MenuModel GetMenuById(int id)
    {
        MenuModel menus = new MenuModel();
        menus.ModulList = GetModuleList();
        menus.StatusList = MenuStatus;
        try
        {
             string query = string.Format(@"SELECT DISTINCT M.MenuID, M.MenuName, Md.ModulID, Md.ModulName from Menu M
                                            LEFT JOIN MenuModul MM ON MM.MenuID = M.MenuID 
                                            LEFT JOIN Modul Md ON Md.ModulID = MM.ModulID 
                                            where M.MenuID = {0} AND M.IsDeleted = 0", id);
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            for (int i = 0; i <= dt.Rows.Count - 1; i++)
            {
                menus.MenuID = Convert.ToInt32(dt.Rows[i]["MenuID"]);
                menus.MenuName = Convert.ToString(dt.Rows[i]["MenuName"]);
                menus.ModulID = Convert.ToInt32(dt.Rows[i]["ModulID"]);
                menus.ModulName = Convert.ToString(dt.Rows[i]["ModulName"]);
            }
          // I fetch ModulID and ModulName data for return the checkbox value when I want to edit.
            da.Dispose();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        finally
        {
            conn.Close();
        }
        return menus;
    }

请帮忙,我将非常感激:)

已选中的复选框动态地与值从数据库在mvc4

复选框输入应该具有唯一的名称,因为这些名称在POST数组中使用。单选按钮输入共享一个名称,因为您只想要一个"值"。

尝试添加checked属性,如下所示:

<input type="checkbox" data-toggle="checkbox" name="SelectedModuls" Value ="@item.ModulID" checked>@item.ModulName