Сохранение выборов ListBox в сеансе при обратной передаче - PullRequest
0 голосов
/ 07 июня 2018

Как вы можете видеть ниже, я знаю, как сделать это для одного выбора, но это работает только для самого последнего отдельного выбора, я хочу сделать это для нескольких сделанных выборов.

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

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

КакМогу ли я сохранить несколько вариантов, выбранных в списке в сеансе, а затем повторно выбрать их при обратной передаче?

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете сохранить что-либо в сеансе, поэтому вы можете сохранить его как 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);
}
...