问题是这样开始的,我在多个页面中都用到了DataList,因为DataList的样式很难调到最好,就想把他做成一个用户控件,为这个用户控件设置了一个数据集的属性,  
如:  
public  DataSet  imageDataSet  
{  set    
{  
ds=value;  
BindtoSource();  
}  
get  
{return  ds;}}然后在BindtoSource()中设置了绑定数据集ds到控件,也就是DataList,老是出现DataList没有定义,后来一想,可能是给他附属性的时候DataList还没有初始化,最后没办法,在里面new了一个DataList,但是发现还是没有显示,数据集是绝对的有,另外,没加new  DataList之前,老是运行到这里就报错,未将对像引用到对像的实例,唉,郁闷了一个上午,望高手赐教,不胜感激,在线等

解决方案 »

  1.   

    不一定要用dataset作属性啊 ,可以用其他的作属性,然后再通过dataset来绑定,最后返回dataset不就行了,换种方式,嘿嘿
      

  2.   

    回复pangyong0221(我想飞)(I want to fly) 
    因为是在多个页面中用到这个DataList,所以把数据集作为属性,如果在控件里面得到DataSet就只能一个控件用到一个页面了,因为他们获得数据集的方法不同,如果大家不相信的话,可以做一个简单的页面,会得不到值,或者会提示未将对像引用到对像的实例,我觉得是一个非常奇对的问题
      

  3.   

    提供一个思路,在用户控件中写一个datalist然后,然后对这个用户控件类设置一个属性,是你想要绑定的数据,在后台实例化这个用户控件的时候把数据传入用户控件就好了
      

  4.   

    我正是按到
    nanhaoff(战神柔情) 那样去想的,结果报错,不知怎么回事
      

  5.   

    DataGrid DGRid=null;

    //****邦定数据源属性
    public object BindDataSource
    {
    get
    {
       return DGRid.DataSource;
    }
    set
    {
    DGRid.DataSource=value;
    }
    }
      

  6.   

    动态创建DataList控件,主要利用System.Web,UI中类Page的一个集合属性Controls,该属性返回页面上所有控件的集合。
    如:DataList dList=new DataList();
        ……
        DataList.DataBind();
        Controls.Add(DataList);  //---增加控件【注意】
      

  7.   

    这样行不行
    BindtoSource()的函数里面判断一下datalist 是不是为空,若为null则不绑定,否则绑定