OnSelectedIndexChanged事件未触发

时间:2015-05-04 06:02:23

标签: c# asp.net

我知道这里有很多关于这个问题的问题。所以,我搜索过的任何内容都没有帮助,所以我将解释我遇到的问题以及我自己试图解决的问题。

我创建了一个包含两个asp.net DropDownList控件的表(ddlFaculty和ddlCourse),其想法是当ddlFaculty的索引发生变化时,将通过AJAX填充ddlCourse相应的项目。如果我在autopostback上将ddlCourse设置为true,那么`页面会重新加载,因此我知道它必须与控件本身或文件后面的代码有关。

这是我的两个下拉列表:

ddlFaculty

<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>

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

2 个答案:

答案 0 :(得分:0)

您使用的是ScriptManager吗? e.g。

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

(注意:我将您的代码复制并粘贴到一个新项目中。我必须做的唯一两项更改是:(1)在您的6个数组声明(2)前添加一个var添加了ScriptManager。直接工作我!)

答案 1 :(得分:0)

我认为你的活动正在发挥作用,但它会引发错误。然后更新面板将不会更新。

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

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

i&lt; = 更改为 i&lt;