У меня есть функция со следующим кодом, которая динамически связывает таблицу. Я вызываю эту функцию при загрузке страницы. После вызова этого метода таблица содержит три столбца: флажок, метку и текстовое поле.
У меня также есть кнопка управления. Когда эта кнопка нажата, я проверяю отмеченные флажки внутри таблицы и затем вставляю в базу данных данные, соответствующие отмеченному флажку.
Проблема заключается в том, что при нажатии кнопки не сохраняется проверенное состояние флажка, так как нажатие кнопки также вызывает загрузку страницы, что вызывает функцию ниже и, следовательно, все элементы в таблице воссоздаются.
Я не могу использовать Page.IsPostBack здесь, потому что таблица должна быть загружена при нажатии кнопки. Если я напишу приведенный ниже код внутри if (! Page.IsPostBack), то при нажатии кнопки не будет найдено ни одной строки в таблице
try
{
ManageVIN objMngVin = new ManageVIN();
DataTable tblVins = objMngVin.MyFunction(clientCode);
if (tblAssociateFleet.Rows.Count > 1)
{
for (int i = 1; i <= tblAssociateFleet.Rows.Count - 1; i++)
{
tblAssociateFleet.Rows[i].Cells.Clear();
}
}
if (tblVins != null && tblVins.Rows.Count > 0)
{
foreach (DataRow dr in tblVins.Rows)
{
HtmlTableRow tblRow = new HtmlTableRow();
tblRow.Attributes.Add("class", "tblrow");
HtmlTableCell tblCell1 = new HtmlTableCell();
CheckBox chk = new CheckBox();
chk.CssClass = "selctChk";
if (!Page.IsPostBack)
{
chk.Checked = false;
}
tblCell1.Controls.Add(chk);
HtmlTableCell tableCelll2 = new HtmlTableCell();
Label lblVinVlaue = new Label();
lblVinVlaue.Text = Convert.ToString(dr["VIN"]);
tableCelll2.Controls.Add(lblVinVlaue);
HtmlTableCell tableCell3 = new HtmlTableCell();
TextBox txtVinVal = new TextBox();
txtVinVal.CssClass = "textEntry";
tableCell3.Controls.Add(txtVinVal);
tblRow.Cells.Add(tblCell1);
tblRow.Cells.Add(tableCelll2);
tblRow.Cells.Add(tableCell3);
tblAssociateFleet.Rows.Add(tblRow);
}
}
}
Как мне справиться с этой проблемой?