我正在尝试将选定项目中的项目的选定值存储到会话变量中,然后选择它并按下按钮将其添加到会话变量中。我的问题是,有没有办法将多个选择存储到具有相同下拉列表的不同会话变量中。每个会话变量具有相同的值,我不确定如何将每个选定的值保存到新的会话变量中。
protected void DropDownListAddNumber_SelectedIndexChanged(object sender, EventArgs e)
{
Session["selectionOne"] = DropDownListAddNumber.Items.FindByValue(DropDownListAddNumber.SelectedValue);
Session["selectionTwo"] = DropDownListAddNumber.Items.FindByValue(DropDownListAddNumber.SelectedValue);
Session["selectionThree"] = DropDownListAddNumber.Items.FindByValue(DropDownListAddNumber.SelectedValue);
Session["selectionFour"] = DropDownListAddNumber.Items.FindByValue(DropDownListAddNumber.SelectedValue);
}
答案 0 :(得分:0)
如果多选不是您的问题,那么按每个变量存储它将无法很好地扩展。如果要将每个选择存储到会话中,可以将字符串列表存储到会话中。 (利用项目按照我们将它们插入列表的顺序存储的事实)
protected void DropDownListAddNumber_SelectedIndexChanged(object sender, EventArgs e)
{
List<string> sessionList = GetSessionVariable();
sessionList.Add(DropDownListAddNumber.Items.FindByValue
(DropDownListAddNumber.SelectedValue));
}
// you can access the selected values from the list
// if sessionList.Any(), then sessionList.Last() will contain
// the last selected value.. etc.
private List<string> GetSessionVariable()
{
var list = Session["SelectionValuesList"] as List<string>;
if (list == null)
{
list = new List<string>();
Session["SelectionValuesList"] = list;
}
return list;
}
OR
如果您仍想使用多个会话变量,则需要执行某种计数器。 将创建多个变量。这很容易出错。
int lastCounter = 0;
protected void DropDownListAddNumber_SelectedIndexChanged(object sender, EventArgs e)
{
++lastCounter;
Session["selection" + lastCounter] = DropDownListAddNumber.Items
.FindByValue(DropDownListAddNumber.SelectedValue);
}
// you can access last value as
// var lastSelectedValue = Session["selection" + lastCounter];