2009-02-10 6 views
1

Contexte: J'utilise ASP.NET 2.0 (avec C#) et le code ci-dessous est intégré dans un contrôle DataGrid. je suit dans mon fichier .aspx:ASP.NET - Un moyen facile d'échanger un booléen?

 <ASP:TEMPLATECOLUMN HeaderText="Includes CRS Statement?">  
      <ITEMTEMPLATE> 
       <asp:RadioButtonList id="rblSCIncludesCRSStatement" runat="server" RepeatDirection="Horizontal" 
       SelectedIndex='<%# Convert.ToInt32(DataBinder.Eval(Container, "DataItem.CRS_Included")) %>' 
       DataValueField="CRS_Included" RepeatLayout="Flow"> 
        <asp:ListItem value="true" selected="true">Yes</asp:ListItem> 
        <asp:ListItem value="false">No</asp:ListItem> 
        </asp:RadioButtonList> 
      </ITEMTEMPLATE> 
     </ASP:TEMPLATECOLUMN> 
     <ASP:BOUNDCOLUMN visible="false" HeaderText="IncludesCRSStatement" DataField="CRS_Included"></ASP:BOUNDCOLUMN> 

Il est censé lier la valeur booléenne CRS_Included avec le RadioButtonList. Cela fonctionne, mais dans l'ordre inverse. Oui est tourné à non, non est passé à oui, et la seule façon que je peux voir pour le réparer est d'inverser l'ordre des ListItems, ce qui serait contre-intuitif (les boutons radio ne devraient pas démarrer comme Non/Oui, il doit être Oui Non).

Quelqu'un connaît-il un moyen rapide (de préférence en utilisant les fonctions .NET) pour échanger le 0 pour 1, 1 pour 0 et résoudre le problème de façon transparente? Ou, y a-t-il un meilleur moyen d'écrire le code SelectedIndex?

Toute aide est appréciée :-)

+0

Si vous avez aimé la réponse de Jon, vous devriez la marquer comme acceptée! –

Répondre

13
SelectedIndex='<%# 1 - Convert.ToInt32(...) %> 

1 - 0 = 1; 1 - 1 = 0. Cas permutés :)

EDIT: Il peut y avoir une meilleure façon de traiter la question plus générale - c'était l'approche simple de résoudre l'échange 1/0 :)

+0

* duh * pourquoi je n'ai pas pensé à ça :) l'idée d'utiliser une fonction mathématique m'est venue mais je pensais mod() ou quelque chose ... sérieusement mais bonne idée! – n2009

4

Pourquoi n'utilisez pas la propriété SelectedValue plutôt que SelectedIndex.?

0

Avez-vous essayé d'utiliser SelectedValue au lieu de SelectedIndex. (De MSDN) La propriété SelectedValue peut également être utilisée pour sélectionner un élément dans le contrôle de liste en le définissant avec la valeur de l'élément.

Questions connexes