1
의 asp.net MVC에서 csv 파일에서 드롭 다운리스트 캐스케이드 :는 어떻게이처럼 보이는 CSV 파일이
Srednica,Profil,Szerokosc
17.00,60.00,120.00
17.00,70.00,120.00
17.00,80.00,130.00
18.00,80.00,130.00
13.00,70.00,135.00
(...)
을 그리고 난 내 선택 값이에서 그때 Szerokosc
을 선택 처음 3 dropdownlists
을해야 dropdownlist
profil
을 작성하고 마지막은 srednica
입니다. 왜 내 접근 방식이 효과가 없는지 모르겠다.
이 내 컨트롤러입니다 :
public DataTable ReadCSVFile (string pathCSV, DataTable dataTable)
{
string[] contentFile = File.ReadAllLines(pathCSV);
if (contentFile.Count() > 0)
{
string[] col = contentFile[0].Split(',');
for (int i = 0; i < col.Count(); i++)
{
dataTable.Columns.Add(col[i]);
}
for (int i = 1; i<contentFile.Count(); i++)
{
string[] row = contentFile[i].Split(',');
dataTable.Rows.Add(row);
}
}
return dataTable;
}
public ActionResult Index()
{
ReadCSV readCSV = new ReadCSV();
readCSV.ReadCSVFile(pathCSV, dataTable);
for (int i = 0; i < dataTable.Rows.Count; i++)
{
var selectedlistitem = new SelectListItem { Text = dataTable.Rows[i]["Szerokosc"].ToString(), Value = dataTable.Rows[i]["Szerokosc"].ToString() };
if (!listSzerokosc.Any(l => l.Text == selectedlistitem.Text))
{
listSzerokosc.Add(selectedlistitem);
}
}
ViewBag.Szerokosc = listSzerokosc;
return View();
}
public JsonResult GetProfil(string value)
{
List<SelectListItem> listProfil = new List<SelectListItem>();
for (int i = 0; i < dataTable.Rows.Count; i++)
{
if (value != dataTable.Rows[i]["Profil"].ToString())
continue;
var selectedlistitem = new SelectListItem { Text = dataTable.Rows[i]["Profil"].ToString(), Value = dataTable.Rows[i]["Profil"].ToString() };
if (!listProfil.Any(l => l.Text == selectedlistitem.Text))
{
listProfil.Add(selectedlistitem);
}
}
return Json(new SelectList(listProfil, "Value", "Text", JsonRequestBehavior.AllowGet));
}
그리고 이것은 내보기입니다 :이 작업을하는 방법에 대한
@using (Html.BeginForm())
{
@Html.DropDownList("Szerokosc", ViewBag.Szerokosc as SelectList, "---Select szerokosc---", new { @id = "MainDropDownListID" })
@Html.DropDownList("Profil", new SelectList(string.Empty, "Value", "Text"), "---Select profil---", new { style = "width:250px" })
@Html.DropDownList("Srednica", new SelectList(string.Empty, "Value", "Text"), "---Select Srednice---", new { style = "width:250px" })
}
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#Szerokosc").change(function() {
$("#Profil").empty();
$.ajax({
type: 'POST',
url: '@Url.Action("GetProfil")',
dataType: 'json',
data: { id: $("#Szerokosc").val() },
success: function (profile) {
$.each(profile, function (i, profil) {
$("#Profil").append('<option value="' + profil.Value + '">' +
profil.Text + '</option>');
});
},
});
return false;
})
});
</script>
어떤 아이디어?