根据它的组名排序表,其中数据是使用MVC 2.0从数据库中获取的
Sorting Table by Its GroupName, Where Data is Fetched From Database using MVC 2.0
我需要有一个视图,看起来像这样:
[+] Group Name1//这应该是一个手风琴菜单
子名称| Scale1| Scale2| Scale3| Scale4//这应该是表头
Abc | O | O | O//'Abc'为文本,' O '为单选按钮
XYZ | O | O | O | O//与上一行相同
[+]组名e2
子名称| Scale1 | Scale2 | Scale3 | Scale4//与上一个表相同
Pqr | O | O | O | O
Mno | O | O | O | O
我可以得到表点击[+]。并且,我正在生成行列表,使用foreach循环从数据库表中获取值。但是,我面临的问题是,我能够在一个表中获得值,所有值都在其中列出,例如:abc,xyz,…,pqr,mno,…但是我需要它根据它的"组名"对它进行排序,尽管我能够对它进行分组。请建议我如何将它与视图绑定。还有,谁能建议我,我如何使用单选按钮。我需要将选中的单选按钮的值存储在数据库表中。
这是我的观点:
<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;
}
请帮我一下。谢谢你的帮助。
如果你总是需要按GroupName排序那么在业务层你可以使用linq来做类似
viewModel.skills = skills.OrderBy(x => x.GroupName)
相关文章:
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- 通过mvc中的ajax动作链接获取关于成功的响应头
- MVC Jquery-按钮点击-获取if语句错误
- 获取当前页面MVC 5的pdf
- MVC Syncfusion Grid-HTML EJ Grid-获取Jquery中所选行的主键
- 如何在asp.net MVC中从View获取值到JavaScript
- 获取从 .post() 到 PHP 文件的响应,但只能在 MVC 中获取
- 从 javascript 获取 MVC 控制器中的操作参数时出错
- MVC Razor 从 javascript 视图中的控制器获取值
- 在Javascript函数中获取MVC控制器名称
- 可以't使用asp.net mvc 3获取事件模糊
- AngularJS使用MVC动态获取html,附加到主体,并绑定一个控制器
- 在asp.net mvc 3中,如何在不刷新页面的情况下从部分视图获取值到父视图
- Spring MVC获取onclick输入星级的值
- Sencha Touch 2-使用MVC获取Form值
- 通过单击“MVC 获取错误”中的“下一步”按钮 asp.net 在同一详细信息页面上显示记录
- C#MVC获取完整的文件路径
- 点击Asp.net MVC获取链接
- JavaScript - MVC.获取多维数组的值