C# asp.net中的更新面板控件内未触发列表框事件

C# asp.net中的更新面板控件内未触发列表框事件,c#,asp.net,C#,Asp.net,我想在选择ListBox的SelectedIndexChanged事件时从数据库加载记录。我没有在表单中使用更新面板控件,一切都很顺利。现在我想使用更新面板控件,这样我的表单就不会在每次从列表框中选择一个项目时回发。我试过了,但没有达到预期效果。请帮助我克服我面临的这个问题 .aspx代码 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" > <ContentTe

我想在选择ListBox的SelectedIndexChanged事件时从数据库加载记录。我没有在表单中使用更新面板控件,一切都很顺利。现在我想使用更新面板控件,这样我的表单就不会在每次从列表框中选择一个项目时回发。我试过了,但没有达到预期效果。请帮助我克服我面临的这个问题

.aspx代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
        <ContentTemplate>
            <asp:ListBox ID="lstTest" runat="server" AutoPostBack="True" Width="450px" OnSelectedIndexChanged="lstTest_SelectedIndexChanged"></asp:ListBox>
           <asp:TextBox ID="txtReport" runat="server"></asp:TextBox>
           <asp:TextBox ID="txtImression" runat="server"></asp:TextBox>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="lstTest" EventName="SelectedIndexChanged" />
        </Triggers>
    </asp:UpdatePanel>

也许你错过了aspx代码中的一个?我做了一个对我有用的小例子

ASPX代码

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:ListBox ID="ListBox1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged"></asp:ListBox>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ListBox1" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>

代码隐藏

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        // demo values
        for (int i = 0; i < 10; i++)
        {
            ListBox1.Items.Add("value " + i);
        }

    }
}

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    Debug.WriteLine(ListBox1.SelectedItem);
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
//演示值
对于(int i=0;i<10;i++)
{
列表框1.Items.Add(“值”+i);
}
}
}
受保护的无效列表框1\u SelectedIndexChanged(对象发送方,事件参数e)
{
Debug.WriteLine(ListBox1.SelectedItem);
}

如果我遗漏了任何内容,请告诉我。

使用PostBackTrigger而不是AsyncPostBackTrigger。您的页面上是否有脚本错误?您能否验证您的
lstest\u SelectedIndexChanged(..)
是否已执行?我不太清楚是什么意思,但不会像预期的那样工作。我确实在页面上添加了ScriptManager。为什么会投反对票?请让我知道你认为什么是错误的/不合适的!
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        // demo values
        for (int i = 0; i < 10; i++)
        {
            ListBox1.Items.Add("value " + i);
        }

    }
}

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    Debug.WriteLine(ListBox1.SelectedItem);
}