C# 将下拉列表中的选定值存储在会话变量中

C# 将下拉列表中的选定值存储在会话变量中,c#,asp.net,drop-down-menu,session-variables,C#,Asp.net,Drop Down Menu,Session Variables,在选择并按下按钮将其添加到会话变量后,我尝试将下拉列表中项目的选定值存储到会话变量中。我的问题是,是否有一种方法可以使用相同的下拉列表将多个选择存储到不同的会话变量中。每个会话变量都有相同的值,我不确定如何将每个选定的值保存到新的会话变量中 protected void DropDownListAddNumber_SelectedIndexChanged(object sender, EventArgs e) { Session["selectionOne"] = DropDownLis

在选择并按下按钮将其添加到会话变量后,我尝试将下拉列表中项目的选定值存储到会话变量中。我的问题是,是否有一种方法可以使用相同的下拉列表将多个选择存储到不同的会话变量中。每个会话变量都有相同的值,我不确定如何将每个选定的值保存到新的会话变量中

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);
}

如果multi-select不是您的问题,那么按每个变量存储它将无法很好地扩展。如果要将每个选择存储到会话中,可以将字符串列表存储到会话中。利用项目按顺序存储的事实,我们将其插入列表中

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;
}

你到底想做什么?您的示例将当前选定的项目存储到4个不同的会话变量中。asp:dropdownlists不能有多个选择-你需要一个第三方控件,我不知道的是如何将每个选定值存储在某种列表或会话变量中,以便我可以访问该选定值。因此,如果我想获取第二个值并将其打印出来,我可以这样做。只有一个dropdownlist,最新选择的值存储在我创建的四个会话变量中。任何帮助都会很好?我所困惑的是如何将每个选定值存储在某种列表或会话变量中,以便我能够访问该选定值。因此,如果我想获取第二个值并将其打印出来,我可以这样做。只有一个dropdownlist,最新选择的值存储在我创建的四个会话变量中。有什么帮助吗?还不清楚。是要存储在一次快照中选择的多个值,还是每次选择时都要存储单个选定值?每次从一个下拉列表中选择时,我都要存储单个选定值。例如,我选择一个值,按下一个按钮,然后以某种方式存储该值。使用相同的下拉列表,我想进行另一个选择,按下相同的按钮,并存储该值。我面临的问题是,每次我选择一个值并按下按钮存储它时,每个变量都有相同的选择值。因此,基于列表的会话方法应该可以工作。你试过了吗?不要使用findbyvale,只需使用选定值即可。基于列表的会话方法很有效。非常感谢!!
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];