我有一个GridView,我在每个回发期间添加了一个额外的标题行。 为了更好地理解,我展示了代码。
protected void Page_Load(object sender, EventArgs e)
{
AddHeaderRow(); //everything fine if removed
}
private void AddHeaderRow()
{
GridViewRow row = new GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal);
TableCell header = new TableHeaderCell();
header.ColumnSpan = 1;
row.Cells.Add(header);
((Table)grid.Controls[0]).Rows.AddAt(0, row);
}
我在网格的页脚行中也有一个DropDownList,我在验证过程中使用它。
protected void Validator_Validate(object source, ServerValidateEventArgs args)
{
GridViewRow row = (GridViewRow)(source as Control).Parent.Parent;
var drop = (DropDownList)row.FindControl("drop"); //with additional header row, contains no items!
}
添加标题行时,会找到DropDownList,但是为空,以便验证崩溃。如果我删除该代码,它的工作原理。有没有办法解决或避免这个问题?