c# - 在回发时将 ListBox 选择保持在 session 中

标签 c# asp.net session listbox listboxitems

正如您在下面看到的,我知道如何对一个选择执行此操作,但这仅适用于最近的单个选择,我想对多个选择执行此操作。

Session["SelectedListItem"] = this.LstRecipients.SelectedValue;

if (Session["SelectedListItem"] != null)
{
    this.LstRecipients.SelectedValue = (string)Session["SelectedListItem"];
}

如何在 session 中存储在列表框中所做的多个选择,然后在回发时重新选择这些选择?

最佳答案

您可以在 session 中存储任何内容,因此可以将其存储为 string[]List<string> :

string[] selectedValues = this.LstRecipients.Items.Cast<ListItem>()
    .Where(i => i.Selected)
    .Select(i => i.Value)
    .ToArray();
Session["SelectedItemValues"] = selectedValues;

/* on next postback you can retrieve the values in this way: */
var selectedValues = Session["SelectedItemValues"] as string[];
if (selectedValues != null)
{
    foreach(ListItem item in this.LstRecipients.Items)
       item.Selected = selectedValues.Contains(item.Value);
}

关于c# - 在回发时将 ListBox 选择保持在 session 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50740711/

相关文章:

c# - 如何使用 Roslyn 在解决方案中查找 MethodDeclarationSyntax 的所有用法

C#:将多个图像保存到一个文件中

c# - 命名空间 * 已经包含了 * 的定义

session - 使用 wicket-auth-roles 时在 session 过期时向用户显示消息

java - Spring 安全 : session expiration without redirect to expired-url?

c# - Resharper 建议添加参数

asp.net - URL中的阿拉伯字符

asp.net - 从复选框列表控件的外部跨度中删除禁用的属性

c# - @(at) 登录文件路径/字符串

Asp.net MVC 在 Session 中保留敏感信息是否安全?