繁体   English   中英

OnSelectedIndexChanged事件未触发

[英]OnSelectedIndexChanged event not firing

我知道这里有很多关于这个问题的问题。 因此,我所搜索的内容无济于事,所以我将解释我所遇到的问题以及我自己尝试解决的方法。

我用两个asp.net DropDownList控件(ddlFaculty和ddlCourse)创建了一个表,其想法是当ddlFaculty的索引更改时,将通过AJAX用相应的项填充ddlCourse 如果我在ddlCourse autopostback设置为true, ddlCourse重新加载`页面,因此我知道这一定与控件本身或文件背后的代码有关。

这是我的两个下拉列表:

ddl学院

<asp:DropDownList ID="ddlFaculty" class="form-control" runat="server" data-toggle="dropdown" aria-expanded="true" OnSelectedIndexChanged="ddlFaculty_SelectedIndexChanged" AutoPostBack="true">
    <asp:ListItem>Select Faculty</asp:ListItem>
    <asp:ListItem Value="Faculty of Arts">Faculty of Arts</asp:ListItem>
    <asp:ListItem Value="Faculty of Business">Faculty of Business</asp:ListItem>
    <asp:ListItem Value="Faculty of Health">Faculty of Health</asp:ListItem>
    <asp:ListItem Value="Faculty of ">Faculty of Health</asp:ListItem>
    <asp:ListItem Value="Faculty of Service Industries">Faculty of Service Industries</asp:ListItem>
    <asp:ListItem Value="Faculty of Trades">Faculty of Trades</asp:ListItem>
    <asp:ListItem Value="Te Wananga Maori">Te Wananga Maori</asp:ListItem>
</asp:DropDownList>

和ddlCourse

<asp:UpdatePanel ID="updateCourse" runat="server">
    <ContentTemplate>
        <asp:DropDownList ID="ddlCourse" class="form-control" runat="server" data-toggle="dropdown" aria-expanded="true">                  
        </asp:DropDownList>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ddlFaculty" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>

以及在文件后面的代码中要调用的方法

 protected void ddlFaculty_SelectedIndexChanged(object sender, EventArgs e)
{        
    switch (ddlFaculty.SelectedIndex)
    {

            case 1:
            {
                Arts = new string[]
                {
                    "Adobe Creative Suite", "Bachelor of Applied Arts (Creative Writing)", "Bachelor of Applied Arts (Music)", "Bachelor of Applied Arts (Performing Arts)",
                    "Bachelor of Applied Arts (Visual Arts and Design)", "Bachelor of Teaching (Early Childhood Education)", "Certificate in Advanced Photography",
                    "Certificate in Desktop Publishing for Print and the Web", "Certificate in Digital Media", "Certificate in DJ Music", "Certificate in Foundation Music",
                    "Certificate in Live Sound and Event Production", "Certificate in Mastercraft", "Certificate in Multimedia Journalism", "Certificate in Practical Photography",
                    "Certificate in Professional Teaching Practice(English)", "Certificate in Rock, Jazz and Commercial Music", "Certificate in Screen Acting",
                    "Diploma in Applied Stage and Screen Arts(Advanced)", "Diploma in Creative Writing", "Diploma in Creative Writing(Advanced)", "Diploma in Digital Design",
                    "Diploma in Digital Design and Multi - media", "Diploma in Early Childhood Education", "Diploma in Jewellery Design", "Diploma in Performing Arts(Commercial Dance)",
                    "Diploma in Performing Arts: Singing(Musical Theatre)", "Diploma in Publishing", "Diploma in Publishing(Applied)", "Diploma in Stage and Screen Arts",
                    "Graduate Diploma in Creative Writing", "National Diploma in Journalism(Multi - media)(Level 5)", "The Creative Writing Programmes Introduction"
                };

                for (int i = 0; i < Arts.Length; i++)
                {
                    ddlCourse.Items.Add(Arts[i]);
                }
                break;
            }
            case 2:
            {
                Business = new string[]
                {
                   "Bachelor of Applied Business Studies", "Bachelor of Information Technology", "Certificate in English Language", "Certificate in English Language (Advanced)",
                   "Certificate in Information Technology", "Diploma in Information Technology (Level 5)", "Diploma in Information Technology (Level 6)", "Diploma in Management (Not for Profit Sector)",
                   "Graduate Diploma in Applied Business Studies", "Graduate Diploma in Information Technology", "New Zealand Diploma in Business", "New Zealand Institute of Management (NZIM)Certificate in Management",
                   "New Zealand Institute of Management (NZIM)Certificate in Small Business Management", "New Zealand Institute of Management (NZIM)Diploma in Management",
                   "New Zealand Law Society Legal Executive Diploma"
                };

                for (int i = 0; i <= Business.Length; i++)
                {
                    ddlCourse.Items.Add(Business[i]);
                }
                break;
            }
            case 3:
            {
                Health = new string[]
                {
                    "Bachelor of Health Science (Paramedic)", "Bachelor of Nursing", "Bachelor of Nursing Māori", "Bachelor of Nursing Pacific",
                    "Bachelor of Social Work", "Certificate in Foundation Education (Health Science)", "Certificate in Foundation Education (Social Sciences)",
                    "Certificate in Health Professional Practice Development", "Certificate in Nursing (Long Term Care and Rehabilitation)",
                    "Certificate in Preparation for Tertiary Study", "Competency Assessment Programme for Nurses", "National Certificate in Mental Health(Mental Health Support Work)",
                    "National Certificate in Tamariki Ora – Well Child Services", "National Diploma in Mental Health(Mental Health Support Work)",
                    "Postgraduate Certificate in Hospice Palliative Care", "Postgraduate Certificate in Nursing", "Postgraduate Certificate in Perioperative Specialty Nursing",
                    "Postgraduate Certificate in Primary Health Care Specialty Nursing", "Postgraduate Certificate in Specialty Care", "Pre - entry to Degrees"
                };

                for (int i = 0; i <= Health.Length; i++)
                {
                    ddlCourse.Items.Add(Health[i]);
                }
                break;
            }
            case 4:
            {
                Industries = new string[]
                {
                    "Certificate in Beauty and Hairdressing", "Certificate in Beauty Therapy", "Certificate in Cafe Service", "Certificate in Office Administration and Computing (Advanced)",
                    "Certificate in Office Administration and Computing (Intermediate)", "Certificate in Office Administration and Computing (Introductory)",
                    "Certificate in Office Skills/Computing", "Certificate in Outdoor Adventure", "Certificate in Professional Cookery", "Certificate in Retail and Cosmetic Services",
                    "Certificate in Retail Management", "Community Computing", "Diploma in Outdoor Adventure", "Flexi-Learn Computer Applications","Mountain Safety Council Courses",
                    "National Certificate Business (First Line Management) Level 3", "National Certificate in Computing (Level 2 and 3)", "National Certificate in Hairdressing (Salon Support)",
                    "National Certificate in Tourism (Core Skills) Level 3", "National Diploma in Hospitality (Management) (Level 5)", "Short Course Certificate in Avalanche Safety",
                    "Short Course Certificate in Computer Applications"
                };

                for (int i = 0; i <= Industries.Length; i++)
                {
                    ddlCourse.Items.Add(Industries[i]);
                }
                break;
            }
            case 5:
            {
                Trades = new string[]
                 {
                    "Certificate in Automotive Engineering", "Certificate in Automotive Engineering (Advanced)", "Certificate in Aviation (Aeroplane)", "Certificate in Aviation (Aeroplane) Instructor Rating ",
                    "Certificate in Aviation (Helicopter)", "Certificate in Aviation (Helicopter) Advanced", "Certificate in Aviation (Helicopter) Turbine", "Certificate in Aviation (Multi-engine Instrument Rating)",
                    "Certificate in Carpentry", "Certificate in Civil Construction (Introductory Skills)", "Certificate in Commercial Road Transport", "Certificate in Electrical Engineering",
                    "Certificate in Horticulture and Landscaping", "Certificate in Plumbing, Drainlaying", "Gasfitting and Roofing", "Certificate in Road Transport",
                    "Certificate in Trade Skills", "National Certificate in Floristry (Level 2)"
                 };

                for (int i = 0; i <= Trades.Length; i++)
                {
                    ddlCourse.Items.Add(Trades[i]);
                }
                break;

            }
            case 6:
            {
                Maori = new string[]
                 {
                    "Certificate in General Studies", "Certificate in Mastercraft (Ngā Tapuwae o Hine-te-iwaiwa)",
                    "Certificate in Reo Māori – Te Ara Piko", "Certificate in Reo Māori – Tēnei Au", "Certificate in Waka Ama",
                    "Certificate in Waka Ama (Advanced)", "National Certificate in Whakairo (Tūturu) (Level 4)", "National Diploma in Reo Māori (Level 5)",
                    "National Diploma in Reo Māori (Level 6)", "National Diploma in Whakairo (Level 5)", "National Diploma in Whakairo (Level 6)",
                    "Te Hiringa o Te Reo"
                 };

                for (int i = 0; i <= Maori.Length; i++)
                {
                    ddlCourse.Items.Add(Maori[i]);
                }
                break;
            }
    }

脚本管理器(在主文件中)

<asp:ScriptManager runat="server">
        <Scripts>
            <%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%>
            <%--Framework Scripts--%>
            <asp:ScriptReference Name="MsAjaxBundle" />
            <asp:ScriptReference Name="jquery" />
            <asp:ScriptReference Name="bootstrap" />
            <asp:ScriptReference Name="respond" />
            <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
            <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
            <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
            <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
            <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
            <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
            <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
            <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
            <asp:ScriptReference Name="WebFormsBundle" />
            <%--Site Scripts--%>
        </Scripts>
    </asp:ScriptManager>

我不太确定我还能尝试什么。

您正在使用ScriptManager吗? 例如

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

(注意:我将您的代码复制并粘贴到一个新项目中。我要做的仅有2处更改是(1)在您的6个数组声明前添加一个var(2)添加了ScriptManager。立即为我工作!)

我认为您的活动正常,但会引发错误。 然后更新面板将不会更新。

检查您的循环条件,除了第一个

for (int i = 0; i <= Industries.Length; i++)
{
    ddlCourse.Items.Add(Industries[i]);
}

我<=更改为我<

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM