Dinamici CheckBoxes Tabella non avere un "quadri" valore vero

voti
0

Ho lavorato su una web app utilizzando ASP.NET con la base di codice come C #. Ho una tabella dinamica che ridimensiona basa su un ritorno da una query SQL; con una casella di controllo aggiunto nella terza cella di ogni riga. La casella di controllo viene assegnato un ID in base ad un indice e la data.

Quando gli utenti hanno colpito il pulsante di invio, il codice dovrebbe ottenere un valore da ogni riga che viene selezionata. Tuttavia, quando scorrendo le righe, nessuna delle caselle di controllo mai avuto un valore true per la proprietà Checked. L'ID persiste, ma il valore della casella di controllo sembra essere perduto.

Codice per l'aggiunta le caselle di controllo:

cell = new TableCell();  
CheckBox cb = new CheckBox();  
cell.ApplyStyle(TS);  
cb.ID = index.ToString() +   +  lstDate.SelectedItem.Text.ToString();  

if (reader[RestartStatus].ToString() == 0)  
{  
     cb.Checked = false;  
     cb.Enabled = true;  
}  
else  
{  
     cb.Checked = true;  
}  
cell.Controls.Add(cb);  

Il codice per ottenere il valore casella di controllo:

for (int i = 0; i < CompTable.Rows.Count; i++)  
{  
    int t3 = CompTable.Rows[i].Cells[2].Controls.Count;  
    Control temp = null;  
    if (t3 > 0)  
    {  
        temp = CompTable.Rows[i].Cells[2].Controls[0];  
    }  

    string t2 = i.ToString() +   + lstDate.SelectedItem.Text.ToString();  
    if ( temp != null && ((CheckBox)temp).ID == i.ToString() +   +   lstDate.SelectedItem.Text.ToString())  
    {  
        //Separated into 2 if statements for debugging purposes  
        //ID is correct, but .Checked is always false (even if all of the   boxes are checked)  
        if (((CheckBox)temp).Checked == true)  
        {  
            tlist.Add(CompTable.Rows[i].Cells[0].Text.ToString());  
        }  
    }  
}
È pubblicato 04/08/2009 alle 16:17
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

La causa più probabile per i controlli dinamici non avere un valore è che sono stati creati o dopo ViewState è stato caricato, o leggere prima.

In generale, dovrebbero essere creati controlli dinamici durante l'evento PageInit, e leggere durante o dopo l'evento PageLoad.

Risposto il 04/08/2009 a 16:26
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more