Checkboxlist в gridview запоминает только первый вариант отмеченный галочкой при добавлении новой строки
У меня есть представление сетки с несколькими столбцами, которые позволяют пользователю заполнять данные, и они могут добавить новую строку после завершения заполнения данных. Среди столбцов есть столбец с CheckBoxList, который я разрешаю пользователю многократно выбирать опцию в CheckBoxList, но каждый раз, когда вы добавляете новую строку, остается только первый вариант, выбранный пользователем, в то время как другой выбор исчез. Как я могу позволить опции, выбранной пользователем, оставаться в то время как я добавляю новую строку?
private void SetPreviousDataLecturer() { int rowIndex = 0; if (ViewState["LecturerGridView"] != null) { DataTable dataTableCurrent = (DataTable)ViewState["LecturerGridView"]; if (dataTableCurrent.Rows.Count > 0) { for (int i = 0; i < dataTableCurrent.Rows.Count; i++) { TextBox textBoxLName = (TextBox)LecturerGridView.Rows[rowIndex].Cells[1].FindControl("LecturerName"); TextBox textBoxLID = (TextBox)LecturerGridView.Rows[rowIndex].Cells[2].FindControl("LecturerID"); TextBox textBoxLAdd = (TextBox)LecturerGridView.Rows[rowIndex].Cells[3].FindControl("LecturerAddress"); TextBox textBoxLPNumber = (TextBox)LecturerGridView.Rows[rowIndex].Cells[4].FindControl("LecturerPNumber"); TextBox textBoxLEAdd = (TextBox)LecturerGridView.Rows[rowIndex].Cells[5].FindControl("LecturerEAddress"); CheckBoxList checkBoxListLCourse = (CheckBoxList)LecturerGridView.Rows[rowIndex].Cells[6].FindControl("LecturerCourse"); TextBox textBoxLPassword = (TextBox)LecturerGridView.Rows[rowIndex].Cells[7].FindControl("LecturerPassword"); LecturerGridView.Rows[i].Cells[0].Text = Convert.ToString(i + 1); textBoxLName.Text = dataTableCurrent.Rows[i]["LecturerName"].ToString(); textBoxLID.Text = dataTableCurrent.Rows[i]["LecturerID"].ToString(); textBoxLAdd.Text = dataTableCurrent.Rows[i]["LecturerAddress"].ToString(); textBoxLPNumber.Text = dataTableCurrent.Rows[i]["LecturerPNumber"].ToString(); textBoxLEAdd.Text = dataTableCurrent.Rows[i]["LecturerEAddress"].ToString(); checkBoxListLCourse.SelectedValue = dataTableCurrent.Rows[i]["LecturerCourse"].ToString(); textBoxLPassword.Text = dataTableCurrent.Rows[i]["LecturerPassword"].ToString(); rowIndex++; } } } } private void AddNewRowToLecturerGV() { int rowIndex = 0; if (ViewState["LecturerGridView"] != null) { DataTable dataTableCurrent = (DataTable)ViewState["LecturerGridView"]; DataRow dataRowCurrent = null; if (dataTableCurrent.Rows.Count > 0) { for (int i = 1; i <= dataTableCurrent.Rows.Count; i++) { TextBox textBoxLName = (TextBox)LecturerGridView.Rows[rowIndex].Cells[1].FindControl("LecturerName"); TextBox textBoxLID = (TextBox)LecturerGridView.Rows[rowIndex].Cells[2].FindControl("LecturerID"); TextBox textBoxLAdd = (TextBox)LecturerGridView.Rows[rowIndex].Cells[3].FindControl("LecturerAddress"); TextBox textBoxLPNumber = (TextBox)LecturerGridView.Rows[rowIndex].Cells[4].FindControl("LecturerPNumber"); TextBox textBoxLEAdd = (TextBox)LecturerGridView.Rows[rowIndex].Cells[5].FindControl("LecturerEAddress"); CheckBoxList checkBoxListLCourse = (CheckBoxList)LecturerGridView.Rows[rowIndex].Cells[6].FindControl("LecturerCourse"); TextBox textBoxLPassword = (TextBox)LecturerGridView.Rows[rowIndex].Cells[7].FindControl("LecturerPassword"); dataRowCurrent = dataTableCurrent.NewRow(); dataRowCurrent["RowNumber"] = i + 1; dataTableCurrent.Rows[i - 1]["LecturerName"] = textBoxLName.Text; dataTableCurrent.Rows[i - 1]["LecturerID"] = textBoxLID.Text; dataTableCurrent.Rows[i - 1]["LecturerAddress"] = textBoxLAdd.Text; dataTableCurrent.Rows[i - 1]["LecturerPNumber"] = textBoxLPNumber.Text; dataTableCurrent.Rows[i - 1]["LecturerEAddress"] = textBoxLEAdd.Text; dataTableCurrent.Rows[i - 1]["LecturerCourse"] = checkBoxListLCourse.SelectedValue.ToString(); dataTableCurrent.Rows[i - 1]["LecturerPassword"] = textBoxLPassword.Text; rowIndex++; } dataTableCurrent.Rows.Add(dataRowCurrent); ViewState["LecturerGridView"] = dataTableCurrent; LecturerGridView.DataSource = dataTableCurrent; LecturerGridView.DataBind(); } } else { Response.Write("ViewState is null."); } SetPreviousDataLecturer(); }
Что я уже пробовал:
Я пробовал код выше, но он помнит только один выбор.