Creazione quiz a risposta multipla

martedì 08 luglio 2008 - 14.32

aryx82 Profilo | Newbie

Ciao a tutti,
devo creare un quiz in asp.net da mettere online sul mio sito: è costituito da 30 domande per ognuna delle quali ci sono 3 risposte. Le domande e le risposte sono tutte memorizzate in un file xml. Il codice che legge le domande con relative risposte da xml ce l'ho e funziona correttamente ma non riesco a creare dinamicamente le label e relativi radio button per ciascuna domanda e risposta. Mi spiego: essendo tante le label da creare, spero che ci sia un modo da codice per inserire i controlli. Altrimenti mi devo creare 30 label e 30 radio button a mano? mi sembra assurdo!!! Aiutatemi!!
Grazie

naftalina67 Profilo | Newbie

dichiarati le label da codice! ;)
qualcosa tipo:

Label domanda = Label();
prova.Text = "testo della domanda";

ovviamente dentro un ciclo...

aryx82 Profilo | Newbie

Anche a me sembrava la soluzioni piu ovvia...purtroppo non funziona: o meglio non dà errore ma neanche fa vedere la label!!!!

naftalina67 Profilo | Newbie

come costruisic la pagina?
sono un niubbo quindi ti posso dare qualche idea, ma non prenderla per oro colato! ;)
io farei un place-holder e poi, da codice, ci inserirei una bella tabella per avere tutto ordinato! ;) all'interno della tabella ci metterei le label!la strada è fattibile.. perché mi è già capitato di costruire così una tabella!

aryx82 Profilo | Newbie

Perfetto...infatti ti stavo per rispondere che sono riuscita a visualizzare la label inserendola in un placeholder ma mettendo il tutto in un ciclo for ovviamente viene tutto disordinato!!!
Ora provo come hai detto tu inserendo del placeholder la table: secondo te devo creare prima la table e poi le righe nel for e aggiungere tutta la table al placeholder al termine?
Grazie comunque per l'aiuto

naftalina67 Profilo | Newbie

crei la tabella
crei la riga
crei la cella
crei i controlli
aggiungi i controlli alla cella
aggiungi la cella alla riga
aggiungi la riga alla tabella
aggiungi la tabella al placeholder

;)
fammi sapere se va

aryx82 Profilo | Newbie

yuppyyyyyyyy!!!!!
Va tutto alla grande...grazie per l'ideona!!!!
Se non ti scoccio...se dovessi trovare altri intoppi continuo a chiederti aiuto!!!

aryx82 Profilo | Newbie

Ecco un'altra domanda: una volta che creo la mia web application e la pubblico sul mio sito web, quale file devo richiamare per farla funzionare? Ho notato che nella cartella bin visual studio crea due file: uno .pdb e un'altro .dll
Quale uso?
Grazie

naftalina67 Profilo | Newbie

couff couff.. qui passo la palla! ;) sto davvero alle prime armi! ;)

Gianluca_Sharper Profilo | Newbie

Beh se hai utilizzato la struttura classica con le classi nella App_Code allora non ti serve fare il publish basta che metti tutta la struttura ad albero nel tuo ftp.
Al contrario se hai lavorato con un tua struttura particolare e hai bisogno di fare un publish bene, ti verrà creata una dll nella cartella bin. Per ogni modifica al tuo codice dovrai fare un ulteriore publish e sostituire la dll nell ftp con la tua appena pubblicata

Ciao
Gianlu
Le cose impossibili diventano possibili solo quando uno non sa che erano considerate impossibli

aryx82 Profilo | Newbie

Allora...funziona tutto perfettamente. Ora sono passata alla correzione del test. Il problema è questo: per ogni domanda ci sono tra risposte ognuna delle quali ha accanto un radiobuttonlist con due radioitems (vero e falso). anche questi sono stati creati dinamicamente nel for insieme alle label e tutto il resto. Ora la mia domanda è: in fase di correzione come faccio ad intercettare tutti i radiobuttonlist che ci sono nella pagina?

pensavo ad un foreach ma come faccio a dire "per ogni radiobuttonlist nella pagina"?

Gianluca_Sharper Profilo | Newbie

RadioButtonList controllo = (RadioButtonList )Page.FindControl("id_radiobutton");



Le cose impossibili diventano possibili solo quando uno non sa che erano considerate impossibli

aryx82 Profilo | Newbie

Grazie mille per la tempestività!
In questo modo però come faccio da intercettare quale dei due items è stato ceccato?

aryx82 Profilo | Newbie

C'è un altro problema su Page.FindControl perchè avendo creato una progetto web application non ho il controllo page, ho una pagina con estensione aspx. Non so se ho detto una cosa mostruosa in tal caso scusami ma sono alle prime armi!!!

Gianluca_Sharper Profilo | Newbie

Page è un oggetto implicito nelle pagine aspx lo hai per forza

per trovare la radiobutton selezionata

RadioButtonList rbl = (RadioButtonList)Page.FindControl("id_radiobuttonlist");
int radiocheckd = rbl .SelectedIndex

oppure
se ti serve un ciclo

RadioButtonList rd = (RadioButtonList)Page.FindControl("ciao");
int indiceSelezionato= -1;
for (int i = 0; i < rd.Items.Count; i++)
{
if (rd.Items[i].Selected)
{
indiceSelezionato = i;
break;
}
}
Le cose impossibili diventano possibili solo quando uno non sa che erano considerate impossibli

se ti serve altro contattami pure via msn bodomchild@libero.it
ciao

aryx82 Profilo | Newbie

ho provato e va in errore perchè l'oggetto rd è null!!!

Eccezione:Riferimento a un oggetto non impostato su un'istanza di oggetto.

Gianluca_Sharper Profilo | Newbie

se è null è perchè non ha trovato il controllo
il findcontrol lo devi fare sugli id dei controlli dinamici che hai creato
Le cose impossibili diventano possibili solo quando uno non sa che erano considerate impossibli
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5