2013-09-17 2 views
1

Мне нужно отменить выбор радиокнопки в списке переключателей, я знаю, что более разумно использовать флажок, но управление хочет, чтобы радиокнопка не была снята.Отменить выбор списка радиокнопков при щелчке

+0

'.Checked = false' - Вы действительно пытались что-нибудь .. – Sayse

+0

Пожалуйста, прочтите [документацию] (http://msdn.microsoft.com/en-us/? library/system.windows.forms.radiobutton.aspx) и см. ['RadioButton.Checked Property'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.radiobutton.checked. aspx) – tnw

+0

@tnw - это документация для winforms. Вероятно, это [это] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton.aspx) – Sayse

ответ

0

Вы имеете в виду, что вы хотите, чтобы ваша группа переключателей имела нулевые значения? Технически вы можете просто убедиться, что никакое радио в группе не имеет установленного значения. checked="" или просто удалить весь атрибут.

Помните, что это недопустимое состояние для группы радиостанций. Это похоже на логическое значение, которое не установлено ни истинным, ни ложным. Это не имеет смысла семантически и нарушает спецификацию HTML.

Если вы ограничены группой радиостанций, единственным допустимым вариантом является включение одной радиостанции, которая представляет состояние «ни одного другого параметра».

10

Управление RadioButtonList - это коллекция ListItems. Чтобы очистить один переключатель в элементе управления, вам необходимо использовать Index для этого конкретного элемента. Чтобы очистить все переключатели в элементе управления, существует метод «ClearSelection()».

//To Unselect First Item 
    RadioButtonList1.Items[0].Selected = false; 

    //To unselect all Items 
    RadioButtonList1.ClearSelection(); 

надеюсь, что это решит вашу проблему.

+0

Я уже использовал ClearSelection для сброса формы. Пользователю должно быть разрешено отключить переключатель. У меня есть два варианта: 1.User Active 2.User Inactive. – Danny

0

Используйте это, это поможет вам:

RadioButton1.Checked = ложь;

0

У меня была та же проблема. В моем случае я использовал радиокнопку checkedChanged для автоматического добавления фрагмента строки медицинской документации в элемент управления с большим текстовым полем. Фрагмент будет отличаться для каждого выбранного переключателя, и требование состояло в том, чтобы разрешить только один выбор. Поэтому переключатели были лучшим выбором вместо флажков. Проблема заключалась в том, что если пользователь хотел удалить ВСЕ текстовые фрагменты из текстового поля, он/она может просто вручную выбрать текст из окна и удалить его - но по крайней мере один переключатель будет оставлен выбранным.

Итак, я обнаружил, что самый простой способ исправить это - добавить кнопку в форму и использовать ее событие _Click, чтобы установить указанную радиокнопку в состояние «false».

Итак, мой код выглядит следующим образом ...

// for rad 1 
    private void rad_NoDifferent_CheckedChanged(object sender, EventArgs e) { 
     if(rad_NoDifferent.Checked) { 
      rtb_GSC_Notes.AppendText(sRating_NoDiffMsg); 
      } else { 
      rtb_GSC_Notes.Text = rtb_GSC_Notes.Text.Replace(sRating_NoDiffMsg, sNoMsg.TrimEnd()); 
      } 
     } 


    // for rad 2 
    private void rad_VeryDifferent_CheckedChanged(object sender, EventArgs e) { 
     if(rad_VeryDifferent.Checked) { 
      rtb_GSC_Notes.AppendText(sRating_VeryDiffMsg); 
      } else { 
      rtb_GSC_Notes.Text = rtb_GSC_Notes.Text.Replace(sRating_VeryDiffMsg, sNoMsg.TrimEnd()); 
      } 
     } 


    // for rad 3 
    private void rad_Unsure_CheckedChanged(object sender, EventArgs e) { 
     if(rad_Unsure.Checked) { 
      rtb_GSC_Notes.AppendText(sRating_UnsureMsg); 
      } else { 
      rtb_GSC_Notes.Text = rtb_GSC_Notes.Text.Replace(sRating_UnsureMsg, sNoMsg.TrimEnd()); 
      } 
     } 

    // for button reset 
    private void btn_ClearRadioButtons_Click(object sender, EventArgs e) { 
     rad_NoDifferent.Checked = false; 
     rad_Unsure.Checked = false; 
     rad_VeryDifferent.Checked = false; 
     } 
0

Недавно я столкнулся такая же проблема, однако я нашел решение с помощью кнопки радио. ниже являются ASPX код кнопки радио

<div> 
    <asp:RadioButton ID="RadioButton1" GroupName="myg" onClick="clicked(this.id);" runat="server" /> 
    <asp:RadioButton ID="RadioButton2" GroupName="myg" onClick="clicked(this.id);" runat="server" /> 
    <asp:RadioButton ID="RadioButton3" GroupName="myg" onClick="clicked(this.id);" runat="server" /> 
    <asp:RadioButton ID="RadioButton4" GroupName="myg" onClick="clicked(this.id);" runat="server" /> 
</div> 

Просто написать ниже Java Script.

<script type="type/javascript"> 

var arr = []; 

function clicked(radid) { 

var ra = document.getElementById(radid); 
if (arr.indexOf(radid) < 0) { 
    arr.splice(0, arr.length); 
    arr.push(radid); 
} 
else { 
    arr.splice(0, arr.length); 
    ra.checked = false; 

} 
} 
</script> 

Надеюсь, что это решит вашу цель.

3
private void Clear() 
    { 
     if(RadioButton1.Checked) 
      { 
       RadioButton1.Checked = false; 
      } 
    } 
0

WPF/C#

if (RadioBTN.IsChecked == true) { 
    RadioBTN.IsChecked = false; 
} 
0

Два распространенных способа сделать это являются

Код Пример 1: Пример

foreach(ListItem li in RadioButtonList1)` 
{ 
if(li.Selected) 
{ 
li.Selected = false; 
} 
} 

Код 2: (Best & Предпочтительный способ)

RadioButtonList1.SelectIndex = -1 
Смежные вопросы