0

我有一个带有 2 个选项的 RadioButtonList -Beach bach -Bush bach

我想创建 2 个会话变量我做得对吗

Session["beachBach"] = bachRadioButtonList.SelectedValue = "Beach bach";
Session["bushBach"] = bachRadioButtonList.SelectedValue = "Bush bach";

因此,如果用户按下选择“Beach bach”,则 1 将添加到 Session["beachBach"] 与 Bush bach 相同

还是我需要创建 2 个单选按钮列表?

谢谢

4

5 回答 5

1

我想你想要==而不是=

Session["beachBach"] = bachRadioButtonList.SelectedValue == "Beach bach";
Session["bushBach"] = bachRadioButtonList.SelectedValue == "Bush bach";

否则,您将设置SelectedValue每个单选按钮的 ,然后将该字符串存储在会话变量中。如果您使用==,您正在比较值并存储truefalse在会话变量中。

如果您真的想存储10(我不推荐 -bool值应该可以正常工作并且会使服务器端代码更清洁)只需使用(condition) ? (true) : (false) 三元运算符:

Session["beachBach"] = bachRadioButtonList.SelectedValue == "Beach bach" ? 1 : 0;
Session["bushBach"] = bachRadioButtonList.SelectedValue == "Bush bach" ? 1 : 0;
于 2013-08-26T13:54:36.277 回答
0

据我了解,您希望根据单选按钮列表的选定值设置会话变量。为此,您可以这样做:

// If bachRadioButtonList SelectedValue != "Beach bach",
// clear session variable, else set value to "Beach bach"
Session["beachBach"] = (bachRadioButtonList.SelectedValue != "Beach bach") ? null : "Beach bach";

// If bachRadioButtonList SelectedValue != "Bush bach",
// clear session variable, else set value to "Bush bach"
Session["bushBach"] = (bachRadioButtonList.SelectedValue != "Bush bach") ? null : "Bush bach";
于 2013-08-26T13:57:53.760 回答
0

而不是存储值1(您的代码不会这样做),您应该存储一个布尔值(truefalse)。

Session["beachBach"] = (bachRadioButtonList.SelectedValue == "Beach bach");
Session["bushBach"] = (bachRadioButtonList.SelectedValue == "Bush bach");

但是,您必须携带两个会话变量,这并不是很好。如果有一天你有 50 个单选按钮,你真的不想要 50 个会话变量。相反,您可以创建一个枚举并将您想要的选择放入会话变量中:

public enum BachEnum 
{
    Beach,
    Bush
}

Session["bach"] = (bachRadioButtonList.SelectedValue == "Beach bach") ? BachEnum.Beach : BachEnum.Beach;

然后,您可以使用新值扩展您的枚举,并且可以像这样完成条件:

if ((BachEnum)Session["bach"] == BachEnum.Beach)
    // do stuff
于 2013-08-26T14:01:10.733 回答
0

你应该使用 selectedIndexChange 事件。

void SelectedIndex_Changed(Object sender, EventArgs e) 
{

   Session["SelValue"] = RadioButtonList1.SelectedItem.Value;
}

无论如何,我不知道您想要实现什么,但我很确定您应该考虑不为此使用两个单个会话变量。

于 2013-08-26T14:04:56.083 回答
-1

如果值不互斥,则创建两个单选按钮列表。如果它们是,它们必须在同一个列表中,以确保一次只选择两者中的一个。

于 2013-08-26T13:52:34.990 回答