Я беру grid-view с двумя элементами управления текстовым полем и одним элементом управления checkboxlist. В то время как я добавляю новую строку в grid-view динамически, тогда два текстовых поля содержат значение в предыдущей строке, но элементы в элементе управления checkboxlist не отображаются в предыдущей строке. Я хочу сохранить состояние checkboxlist в предыдущей строке , Как это сделать? Может ли кто-нибудь дать какое-либо предложение?Добавить новую строку в GridView с контролем CheckBoxList и TextBox
private void FirstGridViewRow()
{
DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
dt.Columns.Add(new DataColumn("Col1", typeof(string)));
dt.Columns.Add(new DataColumn("Col2", typeof(string)));
dt.Columns.Add(new DataColumn("Col3", typeof(string)));
dt.Columns.Add(new DataColumn("Col4", typeof(string)));
dt.Columns.Add(new DataColumn("Col5", typeof(string)));
dr = dt.NewRow();
dr["RowNumber"] = 1;
dr["Col1"] = string.Empty;
dr["Col2"] = string.Empty;
dr["Col3"] = string.Empty;
dr["Col4"] = string.Empty;
dr["Col5"] = string.Empty;
dt.Rows.Add(dr);
ViewState["CurrentTable"] = dt;
grvStudentDetails.DataSource = dt;
grvStudentDetails.DataBind();
}
private void AddNewRowbutton_click()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
TextBox actionitemname =
(TextBox)grvStudentDetails.Rows[rowIndex].Cells[1].FindControl("txtName");
TextBox actionduedate =
(TextBox)grvStudentDetails.Rows[rowIndex].Cells[2].FindControl("txtAge");
CheckBoxList assignee = (CheckBoxList)grvStudentDetails.Rows[rowIndex].Cells[5].FindControl("chkAssignees");
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["RowNumber"] = i + 1;
dtCurrentTable.Rows[i - 1]["Col1"] = actionitemname.Text;
dtCurrentTable.Rows[i - 1]["Col2"] = actionduedate.Text;
//dtCurrentTable.Rows[i - 1]["Col5"] = assignee.SelectedItem.Text;
rowIndex++;
}
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["CurrentTable"] = dtCurrentTable;
grvStudentDetails.DataSource = dtCurrentTable;
grvStudentDetails.DataBind();
}
}
else
{
Response.Write("ViewState is null");
}
SetPreviousData();
}
private void SetPreviousData()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dt = (DataTable)ViewState["CurrentTable"];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TextBox TextBoxName = (TextBox)grvStudentDetails.Rows[rowIndex].Cells[1].FindControl("txtName");
TextBox TextBoxAge = (TextBox)grvStudentDetails.Rows[rowIndex].Cells[2].FindControl("txtAge");
TextBoxName.Text = dt.Rows[i]["Col1"].ToString();
TextBoxAge.Text = dt.Rows[i]["Col2"].ToString();
rowIndex++;
}
}
}
}
текстовое поле работает нормально .. я не знаю, как сохранить значение флажок в GridView .. –
вам нужно хранить проверил статус флажка – Arshad
как я могу это сделать .. скажите, пожалуйста, с кодом –