мне нужно иметь вид, который выглядит примерно так:Сортировки Таблицы по Его ИмяГруппе, где данные извлекаются из базы данных с помощью MVC 2.0
[+] Группа Name1 // это должно быть меню аккордеона
Подзаголовок | Scale1 | ризуется масштабом2 | Scale3 | Scale4 // предполагается, что это заголовок таблицы
Abc | O | O | O | O // 'Abc' - текст, а 'O' - радиокнопка
XYZ | O | O | O | O // То же, что и выше строка
[+] Имя группы2
Подзаголовок | Масштаб1 | Scale2 | Scale3 | Scale4 // То же, что и последняя таблица
Pqr | O | O | O | O
Mno | O | O | O | O
Я могу получить таблицу нажатием [+]. И я генерирую список строк, используя цикл foreach, который извлекает значения из таблицы базы данных. Но проблема в том, что я могу получить значения в одной таблице, и все значения перечислены в ней, например: abc, xyz, .., pqr, mno, ... Но мне это нужно SORT IT в соответствии с его «Group Name», хотя я могу сгруппировать его. Пожалуйста, предложите, как мне связать его с представлением. Кроме того, может ли кто-нибудь предложить мне, как мне работать с радиокнопками. Для этого мне нужно сохранить выбранное значение радиоблока в таблице базы данных.
Вот мое мнение:
<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;
}
Пожалуйста, помогите мне в этом. Заранее спасибо за любую помощь.
Спасибо за вашу помощь pevious. – Novice