加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用AJAX填充下拉列表

发布时间:2020-12-16 07:09:31 所属栏目:asp.Net 来源:网络整理
导读:我有3个下拉框,使用 HTML select标签创建.在页面加载时,第一个框有几个名称.现在,当我单击第一个框中的一个名称时,第二个框中会出现更多名称,当我单击第二个框中的名称时,第三个框中会出现更多名称.如何使用AJAX实现这一目标?我只能使用ASP.Net和MS SQL Ser
我有3个下拉框,使用 HTML select标签创建.在页面加载时,第一个框有几个名称.现在,当我单击第一个框中的一个名称时,第二个框中会出现更多名称,当我单击第二个框中的名称时,第三个框中会出现更多名称.如何使用AJAX实现这一目标?我只能使用ASP.Net和MS SQL Server.我是AJAX的完全菜鸟,我一直在教育自己,但没有什么可以解决的.我一直在寻找接近一周的代码.我查了w3schools.com,但是当我尝试那段代码时,它没有用.请帮帮我,请一步一步告诉我,为了使它工作所需要的东西,以及在哪里.我有一个快速接近的截止日期,并且在我的智慧结束时试图让它发挥作用.帮我!!

解决方法

我建议将三个下拉列表放在UpdatePanel中,并为每个更新面板添加一个触发器.然后,当值更改时,重新填充下拉列表并让updatepanel推送更新.还要保留会话状态,以防您想要提交值.

我面前没有编译器,但如果需要发布评论,我明天会发布代码.

工作实例

我正在使用visual studio和母版页附带的“传统模板”,所以请原谅内容占有者.但这应该证明我的意思:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="MultiDropDown.aspx.cs" Inherits="AppSettingsRetrieval.MultiDropDown" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <script runat="server">
        protected void Page_Load(object sender,EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                String[] options = new[] { "ABC","DEF","GHI","JKL","MNO","PQR","STU","VWX","YZA" };
                foreach (String option in options)
                {
                    this.DropDownList1.Items.Add(new ListItem(option,option));
                }
            }
        }

        public void DropDownList1_SelectedIndexChanged(object sender,EventArgs e)
        {
            this.DropDownList2.Items.Clear();
            this.DropDownList2.Items.Add(new ListItem("--- Please Select One ---"));

            String[] options = new[] { "123","456","789","101","112","131","415","161","718" };
            foreach (String option in options)
            {
                var str = String.Format("{0} {1}",this.DropDownList1.SelectedValue,option);
                this.DropDownList2.Items.Add(new ListItem(str,str));
            }
            this.DropDownList2.Enabled = true;

            this.DropDownList3.Enabled = false;
        }

        public void DropDownList2_SelectedIndexChanged(object sender,EventArgs e)
        {
            this.DropDownList3.Items.Clear();
            this.DropDownList3.Items.Add(new ListItem("--- Please Select One ---"));

            String[] options = new[] { "test","testing","tester","foo","bar","foobar" };
            foreach (String option in options)
            {
                var str = String.Format("{0} {1}",this.DropDownList2.SelectedValue,option);
                this.DropDownList3.Items.Add(new ListItem(str,str));
            }
            this.DropDownList3.Enabled = true;
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <asp:ScriptManager runat="server" ID="ScriptManager1"></asp:ScriptManager>

    <asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
        <ContentTemplate>
            <fieldset>
                <legend>Consecutive Dropdown List</legend>
                <p>
                    Primary Filter:
                    <asp:DropDownList runat="server" ID="DropDownList1" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
                        <asp:ListItem Text="---Please Select One---" />
                    </asp:DropDownList>
                </p>
                <p>
                    Secondary Filter:
                    <asp:DropDownList runat="server" ID="DropDownList2" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged" AutoPostBack="true" Enabled="false">
                        <asp:ListItem Text="---Please Select One---" />
                    </asp:DropDownList>
                </p>
                <p>
                    Final Filter:
                    <asp:DropDownList runat="server" ID="DropDownList3" Enabled="false">
                        <asp:ListItem Text="---Please Select One---" />
                    </asp:DropDownList>
                </p>
            </fieldset>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读