如下一个类型定义using System;
using System.Web;
using System.Web.UI;
using CyberNext.DataAccess ;
using Microsoft.Web.UI.WebControls ;
using System.Web.UI.WebControls ;
using System.Web.UI.HtmlControls ;
using System.Data.SqlClient ;
using System.Data;
using System.Drawing;namespace BaseSuperClass.baseclass
{

    //DataList类
    public class CReport1:DataList{                   
        protected override void OnLoad(EventArgs e) {
            Set();
            base.OnLoad (e);            
        }

        public void Set(){            
            ReportBodyTemplate1 template=new ReportBodyTemplate1();                         
            this.ItemTemplate=template;  
            this.DataSource=new string[]{"a","b","c","d","e"};
            this.DataBind();
        }
     
                                               
    }        //Datalist的itemtemplate:
    public class ReportBodyTemplate1 : ITemplate{                      
        
        private int itemcount=0;
                 
        public void InstantiateIn(System.Web.UI.Control container) {                                                                                                                     
            container.Controls.Add(GetBody());                                           
            itemcount++;       
        }
      
        public DataGrid GetBody(){             
            DataGrid _Body=new DataGrid();
            TemplateColumn col= new TemplateColumn() ;                              
            col.ItemTemplate =  new ReportActionColTemplate2();                                                                      
            _Body.Columns.Add(col);              
            _Body.DataSource=new int[]{1,2,3,4,5};
            _Body.DataBind();                             
            _Body.ID="OnePage"+itemcount.ToString();                      
            return _Body;           
        }    
    }    //datagrid的一个列模板
    public class ReportActionColTemplate2 : ITemplate{                      
        private int itemcount1=0;                        
        public void InstantiateIn(System.Web.UI.Control Father) {                                                                  
            Literal label=new Literal();   
            label.Text=itemcount1.ToString();
            Father.Controls.Add(label);
            itemcount1++;              
        }    }
}
------------------------------------------------------------
问题是:为什么ReportActionColTemplate2 的InstantiateIn过程
        执行的次数是数据行数的两倍?
        按设计的思路应显示0,1.2,3,4
        结果却是:5,6,7,8,9
-------------------------------------------------------------