已选中的复选框动态地与值从数据库在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;
}
请帮忙,我将非常感激:)
复选框输入应该具有唯一的名称,因为这些名称在POST数组中使用。单选按钮输入共享一个名称,因为您只想要一个"值"。
尝试添加checked属性,如下所示:
<input type="checkbox" data-toggle="checkbox" name="SelectedModuls" Value ="@item.ModulID" checked>@item.ModulName