1:
aspx文件:
<asp:DataList id="DataList1" runat="server" RepeatColumns="3"></asp:DataList>
2:
cs文件
DataList1.DataSource=room.ResourceinRooms();//DataView
DataList1.HeaderTemplate=new Templates(0);
DataList1.ItemTemplate=new Templates(1,3);
DataList1.FooterTemplate=new Templates(2);
DataList1.DataBind();
3:Templates接口
using System;
using System.Web.UI;
namespace conference
{
/// <summary>
/// NewTemplate 的摘要说明。
/// </summary>
public class Templates:System.Web.UI.ITemplate
{
public int _WitchTemplate=1;
public  int  i=1;
public int _HowMany=3;
public Templates()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public Templates(int WitchTemplate,int HowMany)
{
//
// TODO: 在此处添加构造函数逻辑
//
this._WitchTemplate=WitchTemplate;
this._HowMany=HowMany;
if(this._WitchTemplate==1)
i=1;

}
public Templates(int WitchTemplate)
{
//
// TODO: 在此处添加构造函数逻辑
//
this._WitchTemplate=WitchTemplate;

}
#region ITemplate 成员 public void InstantiateIn(System.Web.UI.Control container)
{
// TODO:  添加 NewTemplate.InstantiateIn 实现
switch(this._WitchTemplate)
{
case 0:  //HeaderTemplate
{
LiteralControl lt= new LiteralControl();
lt.Text="<TABLE id=\"Table2\" cellSpacing=\"1\" cellPadding=\"1\" width=\"300\" border=\"1\">";
lt.Text+="<TR><td>";
container.Controls.Add(lt);
break; }
case 1://ItemTemplate
{
LiteralControl lt= new LiteralControl();
lt.Text="<td>"; //////////////////////////////////////////////////////////
                   //////////////////////////////////////////////////////////                                            lt.Text+=<..怎么取得数据源的值...>?????
                                         //   lt.Text+=container.DataItem["columnname"];提示“System.ComponentModel.Container”并不包含对“DataItem”的定义
                                         怎么办?
                  lt.Text="<td>"; //////////////////////////////////////////////////////////
                   //////////////////////////////////////////////////////////
lt.Text+="</td>";
if (i++%this._HowMany==0)
lt.Text+="</tr><tr>";
container.Controls.Add(lt);

break;
}
case 2://FooterTemplate
{
LiteralControl lt= new LiteralControl();
lt.Text="</tr></table>";
container.Controls.Add(lt);
break;
}
case 3://????
{
break;
}
} } #endregion
}
}

解决方案 »

  1.   

    case 1://ItemTemplate
    {
    LiteralControl lt= new LiteralControl();
    lt.Text="<td>"; //////////////////////////////////////////////////////////
                       //////////////////////////////////////////////////////////                                            lt.Text+=<..怎么取得数据源的值...>?????
                                             //   lt.Text+=container.DataItem["columnname"];提示“System.ComponentModel.Container”并不包含对“DataItem”的定义
                                             怎么办?
                      lt.Text="<td>"; //////////////////////////////////////////////////////////
                       //////////////////////////////////////////////////////////
    lt.Text+="</td>";
    if (i++%this._HowMany==0)
    lt.Text+="</tr><tr>";
    container.Controls.Add(lt);

    break;
    }
      

  2.   

    public void InstantiateIn(Control container)
    {
        Literal l = new Literal();
        l.DataBinding += new EventHandler(this.BindData);
        container.Controls.Add(l);
    }
      

  3.   

    http://blog.csdn.net/cuike519/archive/2003/12/28/19331.aspx
      

  4.   

    楼上....您在做什么...我说了 我只想在itemplate接口里面得到数据源的某个列的值~~~