こんにちは、アプリケーションがあります。管理者が Projetcs を従業員に割り当てるため、画面は次のようになります。[Projects]、[Employees]、[AssignedWork] という名前の 3 つの Db テーブルがあります。すべてのプロジェクトをDropDwonに、すべての従業員名をCheckBoxに動的にバインドするこれが私がやっている方法です
<div ><a >Project Name : </a><%:Html.DropDownList("Projects")%></div>
<div class="scrool_main" >
<% foreach (var item in Model)
{ %>
<br />
<%:Html.CheckBox("EmployeId", new { value = item.EmployeeID, @class = "employeeCheckBox" })%>
<%:Html.LabelForModel(item.EmployeeName)%>
<%} %>
</div>
<% if (TempData["notice"] != null) { %>
<p><label id="msgtext" >Inserted Successfully !!!!</label></p>
<% } %>
</div>
これは、ドロップダウンの変更時にコントローラーメソッドを呼び出す方法です
<script type="text/javascript">
$(document).ready(function () {
$("#Projects").change(function () {
alert(1);
var project = document.getElementById("Projects");
var SelProj = project.options[project.selectedIndex].value;
alert(SelProj);
if (SelProj != "") {
alert("hi");
var PorjectId;
$.ajax({
type: "POST",
url: '<%= Url.Action("GetAssignedWork","Project") %>',
enctype: 'multipart/form-data',
data: {ProjectId:SelProj}
})
}
});
});
</script>
this is my controller アクション
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GetAssignedWork(string ProjectId)
{
ViewBag.Projects = new SelectList(GetProjects(), "ProjectId", "ProjectName");
var EmployeeList = new List<ResourceModel>();
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand dCmd = new SqlCommand("select EmployeID from AssignedWork where ProjectID='" + ProjectId + "'", conn);
SqlDataAdapter da = new SqlDataAdapter(dCmd);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
//need help here for getting the checkbox checked
}
return View("AssignWork",EmployeeList);
}
}
したがって、管理者が選択したインデックスのドロップダウンからプロジェクトを選択した場合、そのプロジェクトに以前に割り当てられた従業員をチェックする必要があります..つまり、プロジェクトにすでに割り当てられている従業員をチェックする必要があります...どうすればよいですかこれ