使用JavaScript填充ASP.NET下拉列表当下拉列表发生变化时

3

你好,我正在使用asp.net和javascript,并希望在下拉列表1更改时用列表填充下拉列表2。

public Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();

    DataTable dt = new DataTable();
    dt.Columns.Add("Name");
    dt.Columns.Add("Type");

    foreach (DataDefinitionResponse dr in _dr)
    {
        if (dr.Type != "Group" && dr.Type != "File")
        {
            DataRow row = dt.NewRow();
            row["Name"] = dr.Name;
            row["Type"] = dr.Type;
            dt.Rows.Add(row);

            if (dr.Type == "Dropdown")
            {
                string[] strSplit = dr.ListValue.Split('|');
                List<string> lst = new List<string>();

                foreach (string word in strSplit)
                {
                    lst.Add(word);
                }
                dict.Add(dr.Name, lst);
            }
        }
    }
    ddlFieldName.DataSource = dt;
    ddlFieldName.DataTextField = "Name";
    ddlFieldName.DataValueField = "Type";
    ddlFieldName.DataBind();
    ddlFieldName.ClearSelection();

以下是我用来填充第一个下拉列表ddlFieldName的代码。如您所见,我使用了字典并声明了全局变量。现在我需要使用JavaScript填充第二个下拉列表。
请问有谁能帮助我吗?
谢谢。
1个回答

0
当Dropdownlist1被更改时,使用以下脚本获取所选元素。
<script type="text/javascript">
$jq14(document).ready(function () {
$jq14("#Dropdownlist1").change(function (e) {
window.location = "@Url.Content("~/Controller/ActionMethod/?id=")" + $jq14(this).val();
});
});
</script>

然后在您的控制器操作方法中接收该值,并将其放入ViewBag对象中,例如 ViewBag = id; 最后,在您的视图中获取ViewBag值并将其用作Dropdownlist2的种子循环或列表填充


如果您正在使用ASP.Net MVC,则可以这样做。实际上,当发生更改事件时,您必须获取从dropdownlist1选择的值,一旦您获得该值,例如dropdownlist1包含国家,当从dropdownlist1选择一个国家时,您必须显示该国家的州,因此您调用控制器方法并传递该值(所选国家)。在您的控制器中,您获取该国家并查找其状态列表,并将其返回到您的视图。在您的视图中,您使用从控制器返回的数据填充第二个下拉列表。 - Abdul Ghaffar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接