J'essaie de trouver une ligne, puis supprimer cette ligne d'une datatable. Je continue d'obtenir nIndex = -1. Quelqu'un a des suggestions?DataTable Rows.IndexOf()
protected void cbxSelected_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkbox = (CheckBox)sender;
GridViewRow row = (GridViewRow)checkbox.NamingContainer;
string sSampleId = row.Cells[1].Text;
if (!string.IsNullOrEmpty(sSampleId))
{
DataTable dt;
if (ViewState["dtTemp"] != null)
{
dt = (DataTable)ViewState["dtTemp"];
}
else
{
dt = new DataTable();
dt.Columns.Add("sample_id");
}
DataRow dr;
string[] drow = new string[] { sSampleId };
dr = dt.NewRow();
dr.ItemArray = drow;
if (checkbox.Checked == true)
{
dt.Rows.Add(dr);
}
else if (checkbox.Checked == false)
{
int nIndex = dt.Rows.IndexOf(dr);
dt.Rows.RemoveAt(nIndex);
}
ViewState.Add("dtTemp", dt);
}
}
J'ai pensé en construisant le datarow que je pourrais trouver cette rangée dans le datatable. Je me souviens de l'avoir fait en vb, mais C# semble être un peu plus radin. J'ai essayé votre suggestion de faire une boucle sur la table et de supprimer la ligne sur une trouvaille, cela fonctionne. Merci pour la contribution. – Kris