Dynamiske Tabell avmerkingsboksene ikke å ha en "Sjekket" sanne verdi

stemmer
0

Jeg har jobbet på en web-app med ASP.NET med kodebasen som C #. Jeg har en dynamisk tabell som endrer basert på en retur fra en SQL-spørring; med en avkrysningsboksen tilsatt i den tredje cellen i hver rad. Den boksen er tildelt en ID i henhold til en indeks og datoen.

Når brukere treffer send-knappen, er koden skulle få en verdi fra hver rad som blir kontrollert. Men når looping gjennom radene, ingen av boksene noensinne har en verdi på sant for Sjekket eiendom. ID vedvarer, men verdien av boksen ser ut til å være tapt.

Kode for å legge boksene:

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

Koden for å få boksen verdi:

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());  
        }  
    }  
}
Publisert på 04/08/2009 klokken 15:17
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Den mest sannsynlige årsaken til dynamiske kontrollene ikke å ha en verdi at de enten ble opprettet etter Visningsstatusen har blitt lastet, eller lest før.

Generelt sett bør dynamiske kontroller opprettes under PageInit arrangementet, og lese under eller etter Pageload hendelsen.

Svarte 04/08/2009 kl. 15:26
kilden bruker

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