in image above show what i need
I have three drop down list Country,City,District
three drop down list cascade each other
meaning select country fill City and select City fill District in edit or create both
in edit view i can get value selected previous for country and city for employee i need to edit
but District cannot get selected value for employee i need to edit
- in Edit view (get)
-
- @model WebCourse.Models.Customemployee2
- @{
- Layout = null;
- }
-
- <!DOCTYPE html>
-
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <title>Edit</title>
- <script src="~/scripts/jquery-1.10.2.js"></script>
- <script>
- $(function () {
- $("#CountryId").change(function () {
- $("#citylist").empty();
-
- var x = $(this).val();
- $.ajax({
- url: "/empcourse/getcitybyid",
- data: { id: x },
- success:function(res)
- {
- $.each(res, function (i, e) {
- if (e.Id == $("#cityidhidden").val())
- {
- $("#citylist").append("<option selected value='" + e.Id + "'>" + e.CityName + "<option>")
- }
- else
- {
- $("#citylist").append("<option value='" + e.Id + "'>" + e.CityName + "<option>")
- }
-
-
- });
- }
- });
-
-
- });
- $("#CountryId").change();
- $("#citylist").change(function () {
- $("#districtlist").empty();
-
- var y = $(this).val();
- $.ajax({
- url: "/empcourse/getdistrictbyid",
- data: { id: y },
- success: function (res) {
- $.each(res, function (i, e) {
- if (e.Id == $("#disthidden").val()) {
- $("#districtlist").append("<option selected value='" + e.Id + "'>" + e.DistrictName + "<option>")
- }
- else
- {
- $("#districtlist").append("<option value='" + e.Id + "'>" + e.DistrictName + "<option>")
-
- }
-
- });
- }
- });
-
-
- });
-
- $("#citylist").change();
- });
- </script>
- </head>
- <body>
- <div>
- @using (Html.BeginForm())
- {
- <div>
- <input type="hidden" value="@ViewBag.Cityid" id="cityidhidden" />
- <input type="hidden" value="@ViewBag.dist" id="disthidden" />
- Name:@Html.TextBoxFor(a => a.Name)
- <br />
- Country:@Html.DropDownList("CountryId")
- <br />
- City:<select id="citylist" name="CityId"></select>
- <br />
- District:<select id="districtlist" name="DistrictId"></select>
- <br />
- <input type="submit" />
- </div>
- }
-
- </div>
- </body>
- </html>
- in Edit function in controller empcourse
-
- public class empcourseController : Controller
- {
- mycourseEntities db = new mycourseEntities();
-
-
-
- public ActionResult Edit(int id)
- {
- Employee old = db.Employees.Find(id);
- if (old != null)
- {
-
-
- int countryid = old.Destrict.City.Country.Id;
- var vm = new Customemployee2();
- vm.Name = old.Name;
- ViewBag.CountryId = new SelectList(db.Countries.ToList(), "Id", "CountryName",countryid);
- ViewBag.Cityid = old.Destrict.City.Id;
- ViewBag.dist = old.DistrictId;
- return View(vm);
- }
-
- public JsonResult getcitybyid(int id)
- {
- db.Configuration.ProxyCreationEnabled = false;
- return Json(db.Cities.Where(a => a.CountryId == id), JsonRequestBehavior.AllowGet);
- }
-
- public JsonResult getdistrictbyid(int id)
- {
- db.Configuration.ProxyCreationEnabled = false;
- return Json(db.Destricts.Where(a => a.CityId == id), JsonRequestBehavior.AllowGet);
- }
-
- }
- in model Customemployee2
-
- public class Customemployee2
- {
- public string Name { get; set; }
- public int DistrictId { get; set; }
-
- }
- }