2013-04-03 8 views
9

Ich habe Gridview in meiner Aspx-Seite verwendet. Darin habe ich eine Liste mit sechs Radiobuttons in einer einzelnen Zelle horizontal ausgerichtet.Ist es möglich, ein bestimmtes Listenelement der Radiobuttonliste programmatisch auszublenden?

Ich brauche die 1. Radio-Taste ausgeblendet werden. Wie erreicht man das programmatisch?

<asp:GridView ID="CrowdRatingGrid" runat="server" AutoGenerateColumns="false" AllowPaging="true" PageSize="4" OnPageIndexChanging="CrowdRatingGrid_PageIndexChanging" ViewStateMode="Enabled"> 

<PagerSettings Mode="Numeric" PageButtonCount="4" /> 
<Columns> 
<asp:TemplateField> 
    <HeaderTemplate> 
    Rating 
    </HeaderTemplate> 
    <ItemTemplate> 
    <asp:RadioButtonList runat="server" ID="Rating" SelectedValue='<%# Bind("rating_id") %>' 
          RepeatDirection="Horizontal"> 
          <asp:ListItem Value="0" /> 
          <asp:ListItem Value="1" /> 
          <asp:ListItem Value="2" /> 
          <asp:ListItem Value="3" /> 
          <asp:ListItem Value="4" /> 
          <asp:ListItem Value="5" /> 
         </asp:RadioButtonList> 
        </ItemTemplate> 
       </asp:TemplateField> 
     </Columns> 
     </asp:GridView> 

Ich brauche die List Item mit Wert = 0 ausgeblendet werden. Wie würde ich das erreichen?

+2

Wenn Sie unterschiedliche Logik benötigen für bestimmte Elemente nicht eine 'RadioButtonList' aber einzelne [' RadioButtons'] (http: // msdn .microsoft.com/de-de/library/system.web.ui.webcontrols.radiobutton.aspx). Sie können ein Container-Steuerelement wie 'Panel' und das entsprechende CSS für das Layout verwenden. Verwenden Sie den ['GroupName'] (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton.groupname.aspx), wenn nur eine Auswahl aus einer Liste verfügbarer Optionen möglich ist . –

Antwort

10

Ja, können Sie ausblenden, indem seine Enabled Eigenschaft false Einstellung:

Rating.Items[0].Enabled = false; 

Bearbeitung basierend auf Kommentar von OP. Um das Gerät vollständig loszuwerden, es werden Sie dies tun müssen, um:

Rating.Items.RemoveAt(0); 

und dann, wenn Sie es wollen zurück Sie müssen dies tun:

Rating.Items.Insert(0, "0"); 
+0

Ich brauche es versteckt zu sein ... dein Code deaktiviert nur den Radiobutton –

+0

@Coder, um das zu tun, musst du es dann "entfernen" und 'Einfügen' es zurück, wenn relevant. –

+0

@Coder, siehe meine Bearbeitung. –

2

EDIT: Ok, ich grub in Dies ist ein wenig tiefer und sehen Sie, wie .NET das RadioButtonList-Steuerelement rendert, wenn Sie es auf Horizontal setzen (es ist eine Tabelle mit <td> für jedes Element).

Try this:

var bli = Rating.Items[ 0 ]; 
bli.Attributes.Add("hidden", "hidden"); 
+0

Ich brauche es versteckt ... Ihr Code deaktiviert nur den Radiobutton –

+0

Können Sie den Unterschied, den Sie sehen, zwischen dem Ausblenden und dem Deaktivieren des Optionsfelds erklären? –

+0

Verbergen bedeutet, dass das Radibutton nicht im Bildschirm sichtbar ist ... Deaktivierung bedeutet, dass es sichtbar ist, aber nicht überprüft werden kann – Xavier

0

Es funktioniert gut.

RadioButtonList.Items[index].Enable=True/False; 

Ex:

rdTypePackage.Items[1].Enabled = false; 
1
radioListID.Items[index].Enabled = true/false; 

Es wird zu 100% arbeiten.

0

Alt Faden, obwohl dies zu erreichen, können Sie tun:

//Ensure the item is disabled  
rblRating.Items[0].Enabled = false; 
//Ensure the item is not selected 
rblRating.Items[0].Selected = false; 
//next row of code is hiding your radio button list item through css 
rblRating.Items[0].Attributes[HtmlTextWriterStyle.Visibility] = "hidden"; 
Verwandte Themen