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













