在回发之间未保留ASP.NET WebForm ListBox数据

ASP.NET WebForm ListBox data not retained between postbacks

本文关键字:NET WebForm ListBox 数据 ASP 保留 之间      更新时间:2023-10-22

WebForm页面上有两个列表框。我在page_load期间填充第一个,并使用Javascript使用客户端上的按钮将项目从第一个转移到第二个。我在页面上还有一个"保存"按钮,用于保存数据。

我将一些项目从第一个列表框转移到第二个列表框,然后单击"保存"按钮(这会导致回发)。但当我检查第二个列表框的Items.Count时,它在每个断点都显示0。

你知道如何保留第二个列表框中的数据吗?

您的javascript代码不会更改服务器端的控件,因为这些更改只是客户端的。试着把它全部放在服务器端当按钮是时,您可以调用函数

private void MoveListBoxItems(ListBox source, ListBox destination)
{
    ListBox.SelectedObjectCollection sourceItems = source.SelectedItems;
    foreach (var item in sourceItems)
    {
        destination.Items.Add(item);
    }
    while (source.SelectedItems.Count > 0)
    {
        source.Items.Remove(source.SelectedItems[0]);
    }
}
private void SaveBtn_Click(object sender, EventArgs e)
{
    MoveListBoxItems(FirstListbox, LastListbox);
}