Dynamické tabulky zaškrtávací políčka, které nemají „Zkontrolováno“ skutečnou hodnotu

hlasů
0

Byl jsem pracovat na webových aplikací pomocí ASP.NET kódem báze jako C #. Mám dynamickou tabulku, která změní velikost na základě návratu z SQL dotazu; s políčko přidává ve třetí buňce každého řádku. Zaškrtávací políčko je přidělen identifikátor podle indexu a datum.

Když uživatelé narazí na tlačítko odeslat, kód by měl mít hodnotu z každého řádku, který je kontrolován. Nicméně, když průchozí řádky, žádný z políček stále mají hodnotu true pro odbavené majetku. ID přetrvává, ale hodnota tohoto políčka se zdá být ztracena.

Kód pro přidání zaškrtávacích políček:

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

Kód pro získání hodnoty políčka:

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());  
        }  
    }  
}
Položena 04/08/2009 v 16:17
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Nejpravděpodobnější příčinou dynamické kontroly nemají hodnotu, je to, že byly buď vytvořeny poté, co byl načten ViewState, nebo číst dříve.

Obecně platí, že by měly být vytvořeny dynamické kontroly v průběhu akce PageInit, a číst během nebo po události pageLoad.

Odpovězeno 04/08/2009 v 16:26
zdroj uživatelem

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