2013-08-26 3 views
0

У меня есть RadioButtonList с 2 вариантами -пляжный Bach -Bush бахНастройка переменных сеанса

Я хочу создать 2 переменные сессии я делаю это правильно

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

так что если пользователи пресса выбрал «Beach bach», 1 будет добавлен на сессию [«beachBach»] То же самое касается Буша bach

или мне нужно создать 2 radioobuttonlist ??

благодарит

+0

Привет, вы используете тот же самый радиобуй, меняющий выбранное значение? –

+0

при запуске кода, указанного выше, переменная Session ["beachBach"] будет содержать строку «beach Bach», а не 1 –

ответ

1

Я думаю, что вы хотите == вместо =:

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

В противном случае вы устанавливаете SelectedValue каждой кнопки радио затем хранящей , что строка в переменных сеанса. Если вы используете ==, вы являетесь , сравнивая значения и сохраняя значения true или false в переменных сеанса.

Если вы действительно хотите сохранить 1 или 0 (который я не рекомендую - bool значения должны хорошо работать и сделает уборщика на стороне сервера кода) просто использовать (condition) ? (true) : (false) тройной оператор:

Session["beachBach"] = bachRadioButtonList.SelectedValue == "Beach bach" ? 1 : 0; 
Session["bushBach"] = bachRadioButtonList.SelectedValue == "Bush bach" ? 1 : 0; 
-1

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

+0

привет, что вы имеете в виду, –

0

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

// 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"; 
+0

привет, спасибо за помощь ур, но когда я передаю эту переменную сессии мои другие страницы, это не добавлено 1 событие, если я выбрал 1 из двух вариантов :( –

+0

Как вы переходите на другую страницу? Пожалуйста, напишите больше кода ... –

+0

как я могу сообщить часть своего кода вам. ..так, вы можете мне помочь :(. –

0

Вместо того чтобы хранить значение 1 (что ваш код не будет делать), вы должны хранить логическое значение (либо true или false).

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 
0

Вы должны использовать событие selectedIndexChange.

void SelectedIndex_Changed(Object sender, EventArgs e) 
{ 

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

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

Смежные вопросы