【发布时间】:2011-12-07 23:34:11
【问题描述】:
我有一个使用以下代码动态绑定表的函数。我在页面加载中调用此函数。调用此方法后,表格包含三列:复选框、标签和文本框。
我还有一个按钮控件。单击此按钮时,我正在检查表中的选中复选框,然后将数据插入与选中复选框对应的数据库中。
问题是当按钮被点击时它没有存储复选框的选中状态,因为按钮点击也会调用页面加载,它调用下面的函数,因此表中的所有元素都被重新创建。
我不能在此处使用 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);
}
}
}
我该如何处理这个问题?
【问题讨论】:
标签: c# asp.net html-table