设置未引用到实例

楼主SkyIsland(被电脑折磨死了)2006-11-08 14:08:52 在 .NET技术 / ASP.NET 提问

父控件:用户控件  
  子控件:DataList  
  孙子控件:ImageButton  
   
  实现从用户控件传数据到ImageButton。  
  Page_load方法:  
  System.Web.UI.WebControls.DataList   dataList   =   (DataList)this.FindControl("DataList1");  
  ImageButton   imageButton   =   (ImageButton)dataList.FindControl("ImageButton1");  
  imageButton.ImageUrl   =   this.ImageUrl;//error  
   
  属性:  
  private   string   _imageUrl;  
  public   string   ImageUrl  
  {  
        get{   return   _imageUrl;   }  
        set{   _imageUrl   =   value;}//调试到这里,数据已经过来了。  
  }  
   
  报未将对象的引用设置到对象的实例。 问题点数:10、回复次数:6Top

1 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-08 14:13:32 得分 10

问题在这一行:  
  ImageButton   imageButton   =   (ImageButton)dataList.FindControl("ImageButton1");Top

2 楼SkyIsland(被电脑折磨死了)回复于 2006-11-08 14:15:51 得分 0

请问应该如何写呢?Top

3 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-08 14:16:06 得分 0

如果ImageButton1是嵌套在ItemTemplate中,那么必须先指定是哪一行,如  
  ImageButton   imageButton   =   (ImageButton)dataList.Items[0].FindControl("ImageButton1");  
  Top

4 楼SkyIsland(被电脑折磨死了)回复于 2006-11-08 14:18:06 得分 0

如果需要循环呢?Top

5 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-08 14:21:39 得分 0

foreach(DataListItem   row   in   dataList.Items)  
  {  
  ImageButton   imageButton   =   (ImageButton)row.FindControl("ImageButton1");  
  imageButton.ImageUrl   =   this.ImageUrl;  
  }Top

6 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-11-08 14:22:50 得分 0

如果ImageButton是在表头,那就改用  
  ImageButton   img2   =   (ImageButton)DataList1.Controls[0].FindControl("ImageButton2");  
   
  这类问题,自己多跟踪调试以下就能解决的

posted on 2008-10-07 10:38  lwt2005qq  阅读(164)  评论(0)    收藏  举报

导航