我有一个 Gridview,它通过以下方式获取数据:
internal void updateGrid()
{
List<String> data = dt.getAlldata(UserID(), ListID());
gridViewer.DataSource = data;
gridViewer.DataBind();
}
单击按钮后,数据库将更新并显示新数据。一切正常。
现在我必须用用户控件替换字符串:
internal void updateGrid()
{
List<String> data = dt.getAlldata(UserID(), ListID());
gridViewer.DataSource = data;
gridViewer.DataBind();
for (int i = 0; i < gridViewer..Rows.Count; i++)
{
UCControl dum = (UCControl)LoadControl("~/UCControl.ascx");
dum.SetData(gridViewer.Rows[i].Cells[0].Text, false);
gridViewer.Rows[i].Cells[0].Controls.Clear();
gridViewer.Rows[i].Cells[0].Controls.Add(dum);
}
}
在第一个 Page_Load() 之后,一切都正确显示。但是当我单击我的按钮时,用户控件不会重新绘制。内部数据设置正确,但不会更新。
因为此控件通过客户端上的 UserInputs 上的 javascript 做出反应,所以每个 Usercontrol 都有自己的 Id,由
this.ID = "UCControl" + data[0];
data[0] 是唯一的,但在整个过程中都是已知的。
有人能告诉我为什么 UserControl 不重绘吗?或者更好:我如何告诉用户控件更新?