在csdn中找到的例子http://dev.csdn.net/develop/article/22/22942.shtm,但我调不通,报错说对象未实例化,我断点查tc里没有值传过来,代码贴出来,请各位帮忙查查啦,不胜感激!
webusercontrol1.ascx中:
<asp:label ID="label1" Runat="server" text='<%# Databinder.Eval(((DataGridItem)Container).DataItem,"lastname")%>'></asp:label>在Page_Load事件里
OracleConnection orcn = new OracleConnection("Data Source=cxtjdb;User Id=hlbr;Password=hlbr1234");
this.ds = new DataSet();
string str = "select * from hlbr.ACCT_STAT_200602 where DEPT_ITEM_CODE like '10010101%'";
this.objAdapter = new OracleDataAdapter(str, orcn);
this.objAdapter.Fill(ds, "acct_stat_200602");
ITemplate temp= Page.LoadTemplate("webusercontrol1.ascx");
TemplateColumn tc=new TemplateColumn();
tc.HeaderText = "Last Name";
tc.ItemTemplate = temp;
DataGrid1.Columns.Add(tc);
DataGrid1.DataSource = ds;
DataGrid1.DataMember = "employees";
DataGrid1.DataBind();

解决方案 »

  1.   

    代码更正一部分
    ITemplate temp = Page.LoadTemplate("WebUserControl1.ascx");
    TemplateColumn tc = new TemplateColumn();
    tc.HeaderText = "Last Name";
    tc.ItemTemplate = temp;
    this.DataGrid1.Columns.Add(tc);
    this.DataGrid1.DataSource = this.ds;
    this.DataGrid1.DataMember = "acct_stat_200602";
    this.DataGrid1.DataBind();
      

  2.   

    ITemplate是接口,继承该接口,写一类,我用DetailsView实现了。
      

  3.   

    加上这句:
    tc.ItemTemplate = new TemplateColumn().ItemTemplate;