我根据数据库中的现有数据创建了一个动态复选框。 为了存储到数据库,我使用每个复选框中包含的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;
}
请帮忙,我将非常感激:)
答案 0 :(得分:0)
复选框输入应具有唯一的名称,因为它们在POST数组中使用。 Radiobutton输入共享一个名称,因为您只需要一个&#34;值&#34;帐。
答案 1 :(得分:0)
尝试添加checked属性,如下所示:
<input type="checkbox" data-toggle="checkbox" name="SelectedModuls" Value ="@item.ModulID" checked>@item.ModulName