2009-11-23 4 views
1

J'ai une sorte de table avec une colonne de bouton radio. J'ai réussi à faire fonctionner la colonne radio-bouton dynamiquement dans une cellule (div si matière). Mais, lors de la publication, innerHtml n'a pas été mis à jour avec l'attribut "checked". Pourriez-vous me donner une idée comment puis-je savoir (sur le serveur) si le bouton radio a été coché?Comment puis-je obtenir la valeur du bouton radio inséré dans innerHtml

Plus d'informations: Ceci est sur le contrôle de l'utilisateur à l'intérieur du panneau de mise à jour.

This serait bon post sur mon sujet, encore ne permet pas

+0

Sur le client ou sur le serveur? – Josh

+0

Je suppose que le serveur depuis "publication" a été mentionné – gn22

+0

après une partie du code. – Saar

Répondre

0

Pour une raison quelconque, vous ne pouvez pas utiliser un standard asp: RadioButton et utiliser javascript pour s'assurer qu'il est mutuellement exclusif. Je l'ai déjà fait en ajoutant un attribut personnalisé au radiobutton, puis en utilisant une fonction js pour décocher tous les éléments avec cet attribut et ensuite cocher la case sélectionnée. Cela fonctionne autour du problème IE qui empêche l'attribut groupname de travailler sur les radioboxs qui se trouvent dans des conteneurs différents.

radioButton.InputAttributes.Add("ClientGroupName", "grpRadioList"); 
radioButton.InputAttributes.Add("onclick", 
    string.Format(
    "javascript:radiobuttonToggle('{0}','ClientGroupName','grpRadioList');" 
     ,radioButton.ClientID)); 

et utiliser la JS suivante pour décocher toutes les radios et vérifiez celui que vous voulez. Remarque i utilisé à la place d'attributs InputAttributes que le bouton radio est enveloppé dans une balise span si InputAttributes est pour les éléments ajoutés à la commande d'entrée réelle au lieu de la travée.

function radiobuttonToggle(selectedRB, attribName, attribValue) 
{ 
    var objRadio = document.getElementById(selectedRB); 

    for(i = 0; i < document.forms[0].elements.length; i++) 
    { 
     elm = document.forms[0].elements[i]; 
     if (elm.type == 'radio') 
     { 
      if(elm.getAttribute(attribName) == attribValue) 
       elm.checked = false; 
     } 
    } 
    objRadio.checked = true; 
} 

Vous pouvez ensuite exposer radioButton.Checked comme propriété dans votre fichier CS et réutiliser ceci comme contrôle.

0

Vérifier Form.Request("radio-name") != null

Vous obtenez seulement une valeur non nulle quand il a été vérifié.

+0

ne fonctionne pas :( –

+0

Oleg, « Radio-name » doit être remplacée par la valeur de l'attribut « nom » de votre case à cocher (pas l'attribut id.) – gn22

+0

Request.Form [rbtnReplaced.ClientID] ou demande [ ?. rbtnReplaced.ClientID] les deux nuls –

0

Assurez-vous que vos éléments de page sont reconstruits correctement lors de la publication. Tout processus de reliure qui a inséré les boutons radio la première fois devra être relancé avant que vous puissiez y accéder la deuxième fois.

+0

. Je peux voir innerHtml, mais il ressemble exactement comme je l'inséra. –

0

Voici un exemple de travail, d'abord ajouter des radios à mon formulaire en ligne par la méthode you linked:

function addRadio() 
{ 
    try{ 
     rdo = document.createElement('<input type="radio" name="fldID" />'); 
    }catch(err){ 
    rdo = document.createElement('input'); 
    } 
    rdo.setAttribute('type','radio'); 
    rdo.setAttribute('name','fldID'); 
    document.getElementById('container').appendChild(rdo); 
} 

Puis au code derrière je ne le code ci-dessous pour obtenir la valeur de la radio:

string value = Request["fldID"]; 

Donc, assurez-vous que vous essayez d'obtenir le nom des boutons radio sur le côté serveur. Vous devez utiliser l'attribut name du côté serveur, pas l'identifiant.

+0

Page_Init protected void (object sender, EventArgs e) { div.InnerHtml = ""; } protected void Button1_Click (expéditeur d'objet, EventArgs e) { Console.WriteLine (Request ["gnReplace"]); } Perplexe avec la valeur "on" qui est retournée indépendamment de la sélection. Si le nom est ce qu'on appelle RadioGroup, quel genre de valeur devrais-je obtenir? –

Questions connexes