我有一个 ASP.NET GridView,它使用模板列和用户控件来允许我动态构建数据网格。现在我正在实现用于插入行的事件处理程序。为此,我创建了一个默认值数组并将其添加到充当数据源的数据表中。但是,当我的 OnLoad 事件在回发时触发时,我的所有模板列都不再具有用户控件。我的 gridview 最终只是一片空白,里面什么都没有,我的按钮列也消失了(其中包含添加行、删除行和保存按钮)。
我的行添加事件就是这样做的:
public void AddDataGridRow()
{
List<object> defRow = new List<object>();
for (int i = 0; i < fieldNames.Count; i++)
{
defRow.Add(GetDefaultValueFromDBType(types[i]));
}
dt.Rows.Add(defRow);
}
它是从用户控件中的按钮触发的,该控件的实现如下:
protected void Button1_Click(object sender, EventArgs e)
{
((Scoresheet)(this.Page)).AddDataGridRow();
}
我的加载事件在第一次运行时会做很多事情来设置 GridView,但我不会通过使用 IsPostBack 属性来再次运行它。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Initialize();
}
任何人都知道为什么我的用户控件消失了?