对此函数的调用放置在页面的load事件中,最好放到if(!IsPostBack){}之外。
public void myGrid_itemAdd()
{
#region 动态生成列
DateTime datefrom=DateTime.Parse(Page.Request.QueryString["dateFrom"]);
DateTime dateto=DateTime.Parse(Page.Request.QueryString["dateTo"]);
int colsNum=int.Parse((dateto.Year-datefrom.Year).ToString())+1;
for(int i=1;i<=colsNum;i++)
{
System.Web.UI.WebControls.BoundColumn bcsl=new BoundColumn();
string datafldsl;
datafldsl="shl"+i.ToString();
bcsl.DataField=datafldsl;
bcsl.HeaderText=datafldsl;
bcsl.ItemStyle.HorizontalAlign=HorizontalAlign.Right;
this.myGrid.Columns.AddAt(2*i+1,bcsl);
System.Web.UI.WebControls.BoundColumn bcje=new BoundColumn();
string datafldje;
datafldje="je"+i.ToString();
bcje.DataField=datafldje;
bcje.HeaderText=datafldje;
bcje.DataFormatString="{0:F2}";
bcje.ItemStyle.HorizontalAlign=HorizontalAlign.Right;
this.myGrid.Columns.AddAt(2*(i+1),bcje);
}
#endregion
}
根据输入的年份,动态生成每年的对应绑定列。