【问题标题】:Show dropdown list based on the selected dropdown根据选定的下拉列表显示下拉列表
【发布时间】:2015-09-18 07:49:28
【问题描述】:

在我的控制器中,我有这个要显示在视图中的类别列表。这是我申请的报告部分。

public SelectList getFields()
    {
        List<SelectListItem> field = new List<SelectListItem>();

        field.Add(new SelectListItem { Text = "Department", Value = "dept" });
        field.Add(new SelectListItem { Text = "Referrer", Value = "ref" });
        field.Add(new SelectListItem { Text = "Monthly", Value = "cd_key" });

        return  new SelectList(field, "Value", "Text");

    }

    public ActionResult HR_RecRep()
    {
        ViewBag.fields = getFields();
        return View();
    }

然后在我看来:

<script type="text/javascript">
$(document).ready(function () {
    //this function will call the views with id=category
    $('#fields').change(function () {
        //Get the selected value from the dropdownlist 
        var rep = $(this).val();
        //alert(cat);
        if (rep.toUpperCase() == "DEPT") {
            var text = document.getElementById("dept");
            text.style.display = "inline";

            $.getJSON('/Reports/getDepartment/', function (data) {
                var items = '<option>Select Department...</option>';
                $.each(data, function (i, department) {
                    items += "<option value='" + department.Value + "'>" + department.Text + "</option>";
                });
                $('#department').html(items);
            });

            var textValue = document.getElementById("ref");
            textValue.style.display = "none";
        } 
    });
});

</script>
<div style="border:0px solid black;width:950px;">
Reports By: @Html.DropDownList("fields", String.Empty)
<span id="dept" style="display:none;"><select id="department" name="department"></select></span>
<span id="ref" style="display:none;"><select id="referrer" name="referrer"></select></span>

在我看来,它成功地显示了“按部分报告”的字段。 我希望每当我在下拉列表中选择“部门”时,它指的是类别中的部门,它应该显示数据库中所有部门的下拉列表。

这是我获取部门列表的控制器。

public SelectList getDepartment()
    {
        ViewBag.department = new SelectList(db.rms_departments, "dept_id", "dept_shortname");
        return ViewBag;
    }

当我尝试使用代码时,当我在报告中选择部门时,它没有显示部门的下拉列表。而且对于推荐人,当我从下拉列表中选择它时,它应该显示数据库中所有员工的下拉列表。

你能帮帮我吗? 非常感谢。

也许与我的脚本有关?

【问题讨论】:

    标签: c# asp.net asp.net-mvc drop-down-menu


    【解决方案1】:

    您的问题是您没有从您的操作方法返回 JSON,请修改您的操作以返回 JSON:

    public ActionResult getDepartment()
    {
       var departments = db.rms_departments.Select(x=> 
                                         new 
                                         { 
                                           dept_id=dept_id,
                                           dept_shortname=dept_shortname
                                         });
       return JSON(departments,JsonRequestBehavior.AllowGet);
    }
    

    并在脚本中修改行:

    items += "<option value='" + department.Value + "'>" + department.Text + "</option>";
    

    到:

    items += "<option value='" + department.dept_id+ "'>" + department.dept_shortname+ "</option>";
    

    【讨论】:

    • 我已经修改了我的控制器,但它仍然没有显示任何内容。跟我的剧本有关系吗?我不确定。
    • 是的,你必须更新脚本以及查看我编辑的帖子
    【解决方案2】:

    那时我已经得到了答案。我只是将我的控制器代码更改为这个:

    public JsonResult getDepartment()
        {
            return Json(new SelectList(db.rms_departments, "dept_id", "dept_shortname"), JsonRequestBehavior.AllowGet);
        }
    

    【讨论】:

      猜你喜欢
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      相关资源
      最近更新 更多