为什么selectedindexchanged事件在我的代码中只触发一次?

时间:2014-09-15 13:09:00

标签: c# asp.net updatepanel

我有两个下拉列表,第一个是ddlSubjectArea,下面是它的源代码:

<asp:DropDownList ID="ddlSubjectArea" runat="server" AutoPostBack="True" Height="20px"
                OnSelectedIndexChanged="ddlSubjectArea_SelectedIndexChanged" Width="160px" 
                meta:resourcekey="ddlSubjectAreaResource1" class="notranslate">
            </asp:DropDownList>

以下是第二个代码:

<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:DropDownList ID="ddlCompetency1" runat="server" Width="150px">
                    </asp:DropDownList>
                </ContentTemplate>
                <Triggers>                                        
                <asp:AsyncPostBackTrigger ControlID="ddlSubjectArea" runat="server" />
                </Triggers>
            </asp:UpdatePanel>

这是第一个下拉列表的selectedindexchanged事件的代码。

protected void ddlSubjectArea_SelectedIndexChanged(object sender, EventArgs e)
{
    tblSubjectMasterDLL.BindSubjectOnSubjectArea(ddlSubjectName, Convert.ToInt32(ddlSubjectArea.SelectedItem.Value));
    bIsMultipleCompetency = tblSubjectAreaMasterDLL.IsMultipleCompetency(Convert.ToInt32(ddlSubjectArea.SelectedValue));
    MultipleCompetencySetting();
}

第二个下拉列表的可见性取决于第一个下拉列表的选定索引.selectedindexchanged事件触发一次,但之后它不会触发。我尝试每次都选择不同的值,但没有成功。我在哪里出错了?

我想提供的另一条信息是,即使页面加载事件也只被调用一次。如果我删除更新面板,一切正常。

我想再添加一条信息:如果我为页面设置EnableEventValidation = false,事情就会按预期开始工作。我也听说过不建议将EnableEventValidation设置为false。

0 个答案:

没有答案