protected void gvCheckingReport_RowCreated(object sender, GridViewRowEventArgs e)
{
int curYear = int.Parse(this.ddlYear.SelectedItem.Text);
.........
}
这段代码运行后,在页面加载第一次可以顺利获取到curYear,curMonth值,但是一量存放年月的两个dropdownlist控件数据发生了更新,再触发gridview所在在updatepanel控件更新时,再次创建gridview行时,发生问题:提示ddlYear.SelectedItem为null,悲剧了。
经过反复调试,发现gridview的row系统事件竟然都无法读取。解决办法是,在gridview所在的updatepanel里面加入一个textbox控件curYearTempSaved,当在另一个updatepanel里选择新的年份时,在selecteindexchanged事件里加入
protected void ddlYear_SelectedIndexChanged(object sender, EventArgs e)
{
this.curYearTempSaved.Text = this.ddlYear.SelectedItem.Text;
this.DataPanel.Update();
}
在Row系列事件中获取更新后的curYearTempSaved.text数据即可,当前需要注意的是curYearTempSaved不要在页面加载事件中进行初始化,原因不明,请高手在后面跟帖说明。