Dynamiczne wyboru tabeli nie posiadające „zaznaczone” prawdziwej wartości

głosy
0

Pracuję w aplikacji sieci web przy użyciu ASP.NET z kodu bazowego jak C #. Mam tabelę dynamiczną zmianę rozmiaru w oparciu o powrocie z kwerendy SQL; z pola wyboru dodano trzeciej komórki każdego rzędu. Pole to jest przypisany identyfikator według indeksu i daty.

Gdy użytkownicy hit przesłać przycisk, kod powinien uzyskać wartość z każdego wiersza, który jest zaznaczone. Jednak, gdy zapętlenie poprzez wiersze, żadne z pól wyboru kiedykolwiek mieć wartość true dla Sprawdzone nieruchomości. Identyfikator nie ustępuje, ale wartość wyboru wydaje się być stracone.

Kod do dodawania pola wyboru:

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

Kod do uzyskania wartości pola wyboru:

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());  
        }  
    }  
}
Utwórz 04/08/2009 o 16:17
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Najbardziej prawdopodobną przyczyną dynamiczne kontrole nie posiadające wartości jest to, że zostały one stworzone zarówno po ViewState została załadowana, lub odczytać wcześniej.

Ogólnie rzecz biorąc, dynamiczne kontrole powinny być tworzone w trakcie imprezy PageInit i czytać w trakcie lub po imprezie pageload.

Odpowiedział 04/08/2009 o 16:26
źródło użytkownik

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