我有一个表单,它搜索在日期范围之间发生的单个表(TServices)中的所有行,然后填充表单下面的动态表。
现在我在表格的每个列表旁边添加一个删除ImageButton。这是我的C#代码隐藏,用于将ImageButtons添加到表格单元格中:
ImageButton btnRemoveService = new ImageButton();
btnRemoveService.EnableViewState = true;
btnRemoveService.ImageUrl = "/images/icons/trash.gif";
btnRemoveService.Click += new ImageClickEventHandler(btnRemoveService_Click);
btnRemoveService.ID = "btnRemoveService-" + row["BillingID"].ToString();
btnRemoveService.CommandArgument = row["BillingID"].ToString();
tblCell.Controls.Add(btnRemoveService);
即使我在btnRemoveService_Click()中没有放任何内容,动态表中的所有数据都会消失。当我输入代码来实际删除存储过程时,数据会从动态表中消失,并且数据库中没有任何更改。
修改 我将填充代码移动到它自己的函数中,并在btnRemoveService_Click()的末尾调用它。这不应该重新加载数据吗?
答案 0 :(得分:1)
您的错误是由于您必须在每次加载时向页面添加动态创建的控件。如果您在page_init方法中重新添加它们,则它们将存在以便加载viewstate并成功触发click事件。它都与ASP.NET页面加载过程相关