我需要一个看起来像这样的视图:
[+] Group Name1 //这应该是一个手风琴菜单
子名称| 比例1| 规模2| 比例3| Scale4 //这应该是表头
美国广播公司 | ○ | ○ | ○ | O // 'Abc' 是文本,'O' 是单选按钮
XYZ | ○ | ○ | ○ | O // 同上一行
[+] 组名2
子名 | 规模1 | 规模2 | 规模3 | Scale4 //和上一张表一样
二维码 | ○ | ○ | ○ | O
Mno | ○ | ○ | ○ | ○
我可以通过单击 [+] 获得表格。而且,我正在生成行列表,使用从数据库表中获取值的 foreach 循环。但是,我面临的问题是,我能够在一个表中获取值,并且所有值都列在其中,例如:abc,xyz,..,pqr,mno,... 但我需要它来排序IT 根据其“组名”,尽管我可以对其进行分组。请建议我如何将它与视图绑定。另外,任何人都可以建议我,我如何使用单选按钮。为此,我需要将所选单选按钮的值存储在数据库表中。
这是我的看法:
<div class='toggle'>
<h2> </h2>
<h2>lList</h2>
<div class="togglebox">
<table width="50%">
<br />
<br />
<tr>
<th>
Group Name
</th>
<th>
Sub Name
</th>
<th>
Scale1
</th>
<th>
Scale2
</th>
<th>
Scale3
</th>
<th>
Scale4
</th>
</tr>
<% int counter = 0; %>
<% foreach (var item in Model.skills)
{ %>
<tr>
<td>
<%=item.GroupName%>
</td>
<td>
<%=item.SubName%>
</td>
<td>
<%--<input type="radio" name="scale<%:counter %> />--%>
<%:Html.RadioButton("scale" + counter, 0, item.Scale)%>
<%--<%=Html.RadioButtonFor(m => item.Scale, "Scale1", new { @name = "scale" + counter })%>--%>
</td>
<td>
<%:Html.RadioButton("scale" + counter, 1, item.Scale)%>
<%-- <%=Html.RadioButtonFor(m => item.Scale,"Scale2", new { @name = "scale" + counter})%>--%>
</td>
<td>
<%:Html.RadioButton("scale" + counter, 2, item.Scale)%>
<%--<%=Html.RadioButtonFor(m => item.Scale,"Scale3", new { @name = "scale" + counter})%>--%>
</td>
<td>
<%:Html.RadioButton("scale" + counter, 3, item.Scale)%>
<%--<%=Html.RadioButtonFor(m => item.Scale,"Expert", new {@name = "scale" + counter})%>--%>
</td>
</tr>
<% counter++;
} %>
</table>
这是我的模型:
public class Skill
{
[DisplayName("Sub Name")]
[Required]
public string SubName { get; set; }
[DisplayName("Group Name")]
[Required]
public string GroupName { get; set; }
public bool Scale { get; set; }
}
这是我的 DataAccessLayer:
public static DataTable GetAllList(string ID)
{
SqlConnection con = new SqlConnection(connect);
con.Open();
SqlCommand cmd = new SqlCommand("spGetSkillsList", con);
cmd.Parameters.AddWithValue("@ID", 1);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[0];
}
这是我的业务层
public static SkillMetricsViewModel GetAllList(string ID)
{
ListViewModel viewModel = new ListViewModel();
DataTable dt = DAL.GetAllList(ID);
List<Skill> skills = new List<Skill>();
foreach (DataRow row in dt.Rows)
{
Skill skill = new Skill() { GroupName = row["GroupName"] != null ? row["GroupName"].ToString() : string.Empty, SubName = row["SubName"] != null ? row["SubName"].ToString() : string.Empty};
skills.Add(skill);
}
IEnumerable<IGrouping<string, Skill>> test = skills.GroupBy(i => i.SkillGroupName);
viewModel.skills = skills.GroupBy(x => x.SkillGroupName).SelectMany(r => r).ToList();
return viewModel;
}
请帮助我。提前感谢您的任何帮助。