seeCreating Web Server Control Templates Dynamically
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingwebservercontroltemplatesdynamically.asp
or try
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<html>
 <head>
    <script language="C#" runat="server">       DataTable GetDataTable()
       {
DataTable tbl = new DataTable();
tbl.Columns.Add("col1", typeof(string));
tbl.Columns.Add("col2",typeof(int));
Random r = new Random();
for(int i=0; i < 10; i++)
{
DataRow dr = tbl.NewRow();
dr["col1"] = "col" + i.ToString();
dr["col2"] = r.Next(); tbl.Rows.Add(dr);
} return tbl;
       }
       void Page_Load(Object Sender, EventArgs e) 
{
             Repeater1.DataSource = GetDataTable().DefaultView;
             Repeater1.DataBind();    
       }
 
       void Repeater1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) 
{
                              
     
          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
   {
             e.Item.Controls.Add(new LiteralControl("<tr><td>"));
CheckBox cb = new CheckBox();
cb.ID = (string)DataBinder.Eval(e.Item.DataItem,"col1");
e.Item.Controls.Add(cb);
e.Item.Controls.Add(new LiteralControl("</td><td>"));
Label lbl = new Label();
lbl.Text = DataBinder.Eval(e.Item.DataItem,"col2").ToString();
e.Item.Controls.Add(lbl);
e.Item.Controls.Add(new LiteralControl("</td></tr>"));
          }
       }    
 
    </script>
 
 </head>
 <body>
 
    <h3>OnItemDataBound Example</h3>
 
    <form runat=server>
 
       <p>
       <asp:Repeater id=Repeater1 OnItemDataBound="Repeater1_ItemDataBound" runat="server">
          <HeaderTemplate>
             <table border=1>
                <tr>
                   <td><b>Col1</b></td>
                   <td><b>Col2</b></td>
                </tr>
          </HeaderTemplate>
     
          
          <FooterTemplate>
             </table>
          </FooterTemplate>
             
       </asp:Repeater> <asp:Button id=btn runat=server Text=Submit />
    </form>
 </body>
 </html>

解决方案 »

  1.   

    对不起,上面的代码是我打错了,实际有<td>和runat=server的,报错为:
    <%# databinder.eval(container.dataitem,"id")%>是无效的表达示
      

  2.   

    <asp:TemplateColumn HeaderText="客户名称">
    <HeaderStyle Width="75px"></HeaderStyle>
    <ItemTemplate>
    <asp:Label Runat=server text='<%# DataBinder.Eval(Container.DataItem, "name")%>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox ID="txtName" Runat=server Width="75" Text='<%# DataBinder.Eval(Container.DataItem, "name") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
      

  3.   

    如果:v1.1
    <%# DataBinder.Eval(Container, "DataItem.PhoneNumber") %>