[ASP.NET] RadioButton qui perd sa SelectedValue

RadioButton qui perd sa SelectedValue [ASP.NET] - C#/.NET managed - Programmation

Marsh Posté le 22-01-2008 à 19:41:49    

Bonjour,
 
voilà j'ai remarqué un petit soucis et je cherche une âme charitable qui saura me trouver une feinte.
 
Mise en place du problème:
 
Dans une page je mets une <div>, je mets une RadioButtonList dans cette <div>
Initialement la <div> est disabled.
 
Puis un Button dont le but est simplement de provoquer un PostBack.
 
Dans le Page_Load, si ce n'est pas un PostBack j'initialise la valeur selectionnée de ma radiobuttonlist.
 
 
Le problème:
 
Lorsque je clique sur le Bouton qui génère donc le PostBack et que dans l'événement du Bouton je souhaite récupérer la valeur:
rb.SelectedValue, il me retourne la chaîne vide.  :heink:  
 
Alors que si par défaut la div n'est pas disabled, il arrive à me récupérer la valeur sélectionnée.
 
Code page ASPX

Code :
  1. <div id="test" disabled="disabled">
  2.         <asp:RadioButtonList id="rbl" runat="server">
  3.             <asp:ListItem>1</asp:ListItem>
  4.             <asp:ListItem>2</asp:ListItem>
  5.             <asp:ListItem>3</asp:ListItem>
  6.             <asp:ListItem>4</asp:ListItem>
  7.             <asp:ListItem>5</asp:ListItem>
  8.         </asp:RadioButtonList><br />
  9.     </div>
  10.     <br />
  11.     <br />
  12.     <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />


 
 
 
 
Code C#

Code :
  1. protected void Page_Load(object sender, EventArgs e)
  2.     {
  3.         if (!Page.IsPostBack)
  4.         {
  5.             rbl.SelectedValue = "2";
  6.         }
  7.     }
  8.     protected void Button1_Click(object sender, EventArgs e)
  9.     {
  10.         String q = rbl.SelectedValue;
  11.     }


 
 
 
Réponses aux questions qui pourraient venir:
 
 
 
Déjà pourquoi mettre une <div> disabled ?
 
En fait dans mon véritable projet j'ai une checkbox avec une petite fonction javascript qui me disable (ou pas) cette div (donc la radiobuttonlist).
 
 
Pourquoi ne pas essayer de faire tjrs avec la fonction javascript un disable sur les différents radiobutton plutôt que sur la div?
 
J'ai essayé, même tarif, impossible de récupérer la valeur sélectionnée, et puis c'est moins joli car le text n'est pas grisé.
 
 
 
Cas où ça pourrait marcher ?
 
Si je mets la valeur Enable=false sur mon RadioButtonList, alors je peux récupérer cette valeur côté serveur, par contre je n'arrive plus à disable(ou pas) cette radiobuttonlist avec ma fonction Javascript.
 
 
J'espère avoir été clair.
Help!
 
et merci d'avance.


Message édité par vsfa le 22-01-2008 à 19:44:59

---------------
VsFa :jap: | ID PSN: vsfa
Reply

Marsh Posté le 22-01-2008 à 19:41:49   

Reply

Marsh Posté le 22-01-2008 à 20:25:31    

Euh pourquoi ne pas disabled la radiolist au lieu de mettre un div inutile ? Tu vire tes div ou bien tu les laisse mais tu vire le disabled. Et normalement tu peux récupérer ta sélection même si c'est disable.

Reply

Marsh Posté le 22-01-2008 à 20:34:14    

C'est donc ce que j'indiquais plus bas dans mon post.
 
Si j'enlève ma div et que j'effectue le disable(ou pas) avec ma fonction javascript direct sur la RadioButtonList, c'est le même tarif, il ne récupère pas la valeur.
 
 
Si j'utilise l'attribut Enable=false du RadioButtonList:
 
 
<Asp:RadioButtonList ID="rbl" runat="server" Enable="false">
 
 
Alors là ok je récupère la valeur côté serveur sans soucis, mais je n'arrive pas à disable(ou pas) cette RadioButtonList avec du code Javascript.
(dû à ces foutus span générés avec le tag disabled)
 

Reply

Marsh Posté le 22-01-2008 à 20:41:55    

Pourquoi ne pas utiliser l'addon Ajax pour Visual Studio 2005. Ca t'évite les refresh et y a pas grand chose à faire avec le composant Ajax. Pour le disabled en javascript tu as tenté de faire :
 
<script>
var radio = document.getElementById(radiolistId);
radio.style.disable(d) (ou enable(d)) = ton_boolean
</script>
bref m'en souviens plus trop.


Message édité par MetalDestroyer le 22-01-2008 à 20:42:10
Reply

Marsh Posté le 22-01-2008 à 21:12:11    

oui je connais, j'ai déjà utilisé Ajax mais j'aurais souhaité m'en passer pour le coup.
 
mais bon...je crois que je vais devoir l'utiliser.
Merci qd même.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed