J'ai un contrôle listView qui est lié à une source de données d'objet. Dans l'événement ListView1_ItemDataBound, je génère des contrôles dynamiques. Je fais cela parce que selon une valeur de colonne particulière, je pourrais avoir besoin de générer zone de texte, bouton radio, case à cocher, etc.ListView - Contrôles dynamiques et événements DataPager
Certains code ici:
ListViewDataItem item = (ListViewDataItem)e.Item;
typez = Convert.ToInt32(DataBinder.Eval(item.DataItem,"Type").ToString());
if (typez == 1) //1 means generate radibutton
{
string[] options = DataBinder.Eval(item.DataItem, "QuestionDetail").ToString().Split(new string[] { delimiter }, StringSplitOptions.None);
questionID = Convert.ToInt32(DataBinder.Eval(item.DataItem, "Question_ID").ToString());
int optionCount = 1;
RadioButtonList rbl = new RadioButtonList();
//set ID for the radiobtnList to the questionid no.
rbl.ID = "mcq_" + questionID;
foreach (string s in options)
{
//adds the MCQ options to list item
ListItem li = new ListItem(Util.GetAlphabet(optionCount).ToUpper() + ". " + s, Util.GetAlphabet(optionCount).ToUpper(), true);
rbl.Items.Add(li);
optionCount++;
}
//PlaceHolder PlaceHolder1 = (PlaceHolder)e.Item.FindControl("PlaceHolder1");
PlaceHolder1.Controls.Add(rbl);
Je DataPager aussi. Quand je vais à la page suivante, je veux en quelque sorte capturer la réponse de l'utilisateur dans la page précédente. Sinon, toute la réponse de l'utilisateur est perdue. J'ai essayé d'utiliser l'événement ListView1_PagePropertiesChanging. Mais ici, je ne semble pas obtenir les contrôles dynamiques de la page.
J'ai besoin d'obtenir la valeur du bouton radio sélectionnée pour pouvoir l'enregistrer ou mettre une variable de session afin que lorsque l'utilisateur revient à cette page, il puisse voir ses valeurs précédentes.
Quelqu'un pourrait-il suggérer quelque chose sur ce que je fais mal.