首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX.NET和ListBoxes

AJAX.NET和ListBoxes
EN

Stack Overflow用户
提问于 2009-02-17 20:32:06
回答 3查看 2.5K关注 0票数 1

我有一个里面有两个ListBoxes的UpdatePanel。我想要发生的是,当页面加载时,第一个ListBox会填充一些数据。当用户选择and项时,第二个ListBox应该填充相关数据。

下面是发生了什么,第一个ListBox填充了数据,用户选择了一个项目并触发了SelectedIndexChanged事件,但在方法可以看到选择了哪个项目之前,选择就被清除了?

代码语言:javascript
复制
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
    <table class="listBoxTable">
        <thead>
            <tr>
                <th>
                    Please select a magazine to add articles to.</th>
            </tr>
        </thead>
        <tr>
            <td>                    
                <asp:ListBox ID="lbMagazines" runat="server" Height="300px" Width="250px" 
                    onselectedindexchanged="lbMagazines_SelectedIndexChanged" DataTextField="Title" 
                    DataValueField="Id" AutoPostBack="True">

                </asp:ListBox>
            </td>
            <td>                    
                <asp:ListBox ID="lbIssues" runat="server" Height="300px" Width="250px" 
                    Enabled="False" DataTextField="Title" DataValueField="Id">

                </asp:ListBox>
            </td>
        </tr>
    </table>
</ContentTemplate>
</asp:UpdatePanel>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-17 20:43:16

根据所提供的信息,我最初的想法是在页面加载时重新填充lbMagazines,这样当它到达事件时,选定的项/索引就会被清除。

票数 1
EN

Stack Overflow用户

发布于 2009-02-17 20:44:18

如果只需要更改第二个列表框的内容,那么将第一个列表框放在UpdatePanel之外并使用triggers属性会更合适:

代码语言:javascript
复制
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="lbMagazines" EventName="OnSelectedIndexChanged" />
</Triggers>

这样,当您执行AJAX回发时,只会更新第二个列表框。

票数 3
EN

Stack Overflow用户

发布于 2009-02-17 20:47:20

听起来您最初的列表绑定代码并没有包装在Page.IsPostBack中。

代码语言:javascript
复制
If (!Page.IsPostBack)
{
    //List bind code
}

在这种情况下,原始列表将继续重新绑定,就像您看到的那样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/558592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档