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 :-)
Si vous avez aimé la réponse de Jon, vous devriez la marquer comme acceptée! –