次のようなビューが必要です。
[+] Group Name1 //これはアコーディオン メニューであるはずです
サブネーム| スケール1| スケール2| スケール3| Scale4 //これはテーブル ヘッダーであるはずです
あいうえお | お | お | お | O // 'Abc' はテキスト、' O ' はラジオ ボタン
XYZ | お | お | お | O // 上記の行と同じ
[+] グループ
名2 サブネーム | スケール1 | スケール2 | スケール3 | Scale4 //最後のテーブルと同じ
Pqr | お | お | お | オムノ
| お | お | お | 〇
[+] をクリックするとテーブルを取得できます。そして、データベース テーブルから値をフェッチする foreach ループを使用して、行のリストを生成しています。しかし、私が直面している問題は、1 つのテーブルで値を取得でき、すべての値がその中にリストされていることです。グループ化することはできますが、 「グループ名」に従って 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;
}
これで私を助けてください。どんな種類の助けにも感謝します。