ASP.net C#页面,2页面上的DropDownList只有第二个onSelectedIndexChange触发

时间:2014-10-13 22:10:39

标签: c# asp.net

<tr>
    <td>
        State:
    </td>
    <td>
        <asp:DropDownList runat="server" ID="stateListBox" CssClass="ListBox" SelectionMode="Single"
            DataTextField="stateorregion" DataValueField="stateorregion" AppendDataBoundItems="true"
            OnSelectedIndexChanged="populateCourseListBox" AutoPostBack="true">
        </asp:DropDownList>
    </td>
</tr>
<tr>
    <td>
        Course:
    </td>
    <td>
        <asp:DropDownList runat="server" ID="courseListBox" CssClass="ListBox" SelectionMode="Single"
            DataTextField="courseName" DataValueField="course_id" AppendDataBoundItems="true"
            OnSelectedIndexChange="onCourseSelectedIndexChange" AutoPostBack="true">
        </asp:DropDownList>
    </td>
</tr>

这两个DropDownList应该以相同的方式执行,populateCourseListBox被调用,onCourseSelectedIndexChange没有被调用,没有编译器错误,没有运行时错误。我错过了一些明显的东西吗?

我的想法是,当我选择一个州时,我想填充州的高尔夫球场,然后一旦我选择了一个高尔夫球场,我希望能够选择一个发球区。当我更改状态时,courselistbox会被填充,但是当我选择一个课程时,会调用page_load,但就是这样。

1 个答案:

答案 0 :(得分:2)

在课程DDL中将OnSelectedIndexChange替换为OnSelectedIndexChanged。这是一个拼写错误。

如果控件属性不是事件标识符,则它将被视为自定义属性。这就是为什么你没有得到任何错误。 :)

And, you'll be better off if you could make use of the CascadingDropDown control from Ajax Control Tool kit. This helps you to cascade select multiple drop downs. Have a look at this example