~~~~~~~~~~~自定义控件开发问题~~~~~~~~~~~~~~
自定义控件有个属性TargetConrol,      设置其值为页面上另一个控件的ID字串.       
 比如这样设置:      TargetControl      =       "GridView1 "后,             
 在自定义控件中,      可以这样得到GridView的引用:       
 GridView      gv      =      (GridView)this.FindControl(TargetControl);            
 那么这时用列名的方式访问GridView中的数据:       
 string      str      =      ((System.Data.DataRow)gv.Rows[0].DataItem)[ "CategoryID "].ToString();       
 或       
 string      str      =      gv.Rows[0][ "CategoryID "].ToString();       
 都编译错误或取不到值,      GridView是肯定有数据的.   
 说明一点: 
 在GridView重写事件和页面中用以上方法是可以取到值的,   但在我的自定义控件 
 中却取不到.                  
 并且把这些代码放到几个事件中都编译不通过.            
 另外,   用gv.Rows[0].Cells[1]是可以访问的,   但这里一定要用列名(如:      CategoryID)访问GridView中的数据.            
 请问应该在什么事件中?      怎样写代码可以用列名的方式访问GridView中的数据?           
 Thanks/King     
------解决方案--------------------占个座先
------解决方案--------------------up 目前没环境不能调试
------解决方案--------------------GridView  gv  =  (GridView)this.FindControl(TargetControl);  
 会不会是这处得到的控件就为空,或者不是你指定的控件呢?
------解决方案--------------------学习
------解决方案--------------------thanks
------解决方案--------------------TargetControl 没有保留数据把。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------从“在自定义控件中,  可以这样得到...(GridView)this.FindControl(TargetControl);  ”一直到楼上的回帖,我是越看越乱,不知道有没有喜欢简洁准确的逻辑的人。   
 自定义控件里使用 this 可以找到“页面上另一个控件”?
------解决方案--------------------在GridView重写事件和页面中用以上方法是可以取到值的, 但在我的自定义控件 
 中却取不到. 
 —————————————————————————————————————————— 
 这里我也不理解什么叫做“GridView重写事件”。页面中的GridView的事件处理程序(由GridView触发所执行的实践处理方法)是页面上的方法,不是GridView的方法,根本不是GridView中的事件而是GridView事件触发的代理方法。更不能说事件方法是重写了什么方法,没有重写什么。我想基本概念问题很可能造成你对this到底是什么对象(“我是谁”)的理解错误。