Tableau dynamique CheckBoxes ne pas avoir « vérifié » vraie valeur

voix
0

Je travaille sur une application Web en utilisant ASP.NET avec la base de code en C #. J'ai une table dynamique qui redimensionne basée sur un retour d'une requête SQL; avec une case à cocher ajouté dans la troisième cellule de chaque rangée. La case à cocher est attribué un identifiant selon un indice et la date.

Lorsque les utilisateurs ont frappé le bouton d'envoi, le code est censé obtenir une valeur de chaque ligne est cochée. Cependant, lors de la boucle à travers les lignes, aucune des cases à cocher jamais ont une valeur true pour la propriété Vérifié. L'ID persiste, mais la valeur de la case à cocher semble perdre.

Code pour ajouter les cases à cocher:

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);  

Le code pour obtenir la valeur de case à cocher:

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());  
        }  
    }  
}
Créé 04/08/2009 à 16:17
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

La cause la plus probable pour les contrôles dynamiques ne pas avoir une valeur est qu'ils ont été créés soit après ViewState a été chargé ou lu avant.

D'une manière générale, les contrôles dynamiques devraient être créés lors de l'événement PageInit et lu pendant ou après l'événement PageLoad.

Créé 04/08/2009 à 16:26
source utilisateur

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