using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web.UI.HtmlControls;
//using System.Data;namespace WebApplication5
{
    public class MyItemTemplate : System.Web.UI.ITemplate
    {
        public void InstantiateIn(System.Web.UI.Control container)
        { 
            TableRow row = new TableRow();
            for (int i = 0; i < datename.Count; i++)
            {
                row.Cells.Add(new TableCell() { ID = datename[i] + "a" });
               switch (ucclass[i].ToString().Trim())
               {
                   case "CheckBox":
                      
                    CheckBox a = new CheckBox();
                    a.ID = datename[i];
                    row.Cells[i ].Controls.Add(a);
                    row.Cells[i].BackColor = System.Drawing.Color.Goldenrod;                       break;
                   case "Image":
                       
                    Image image1 = new Image();
                    image1.ID = datename[i];
                   image1.Width = 133;
                    image1.Height = 100;
                    row.Cells[i].Controls.Add(image1);
                    row.Cells[i].BackColor = System.Drawing.Color.Goldenrod;
                       break;
                   case "Label":
                       
                       Label label1 = new Label();
                       label1.ID = datename[i];
                       row.Cells[i].Controls.Add(label1);
                       row.Cells[i].BackColor = System.Drawing.Color.Goldenrod;
                       break;
                   case "TextBox":
                       
                       TextBox textbox1 = new TextBox();
                       textbox1.ID = datename[i];
                       row.Cells[i].Controls.Add(textbox1);
                       row.Cells[i].BackColor = System.Drawing.Color.Goldenrod;                       break;
                   case "":
                      
                       row.Cells[i].BackColor = System.Drawing.Color.Goldenrod;
                       break;               }
                
                            }
            
            row.DataBinding += new EventHandler(ph_DataBinding);
            container.Controls.Add(row);
        }        void ph_DataBinding(object sender, EventArgs e)
        {
            TableRow ph = (TableRow)sender;
            
            IDataItemContainer ri = (IDataItemContainer)ph.NamingContainer;
            for (int i = 0; i < datename.Count; i++)
            {
                object itemValue = DataBinder.Eval(ri.DataItem, datename[i]);
                switch (ucclass[i].ToString())
                {
                    case "CheckBox":
                        
                    ((CheckBox)ph.FindControl(datename[i])).Checked = Convert.ToBoolean(itemValue.ToString());
                        break;
                    case "Image":
                        
                    ((Image)ph.FindControl(datename[i])).ImageUrl = itemValue.ToString().Trim();
                    
                        break;
                    case "Label":
                       
                    ((Label)ph.FindControl(datename[i])).Text = itemValue.ToString().Trim();
                        break;
                    case "TextBox":
                        ((TextBox)ph.FindControl(datename[i])).Text = itemValue.ToString().Trim();
                        break;
                    case "":
                        
                    ((TableCell)ph.FindControl(datename[i])).Text = itemValue.ToString();
                    break;
               
                }
            }
        }
            
        private List<string> _dataname;
        public List<string> datename
        {
            set {
                _dataname = value;
            }
            get
            {
                return _dataname;
            }
        }
        private List<string> _ucclass;
        public List<string> ucclass 
        {
            set
            {
                _ucclass = value;
            }
            get
            {
                return _ucclass;
            }
        }
    }}
代码,是listview itemtamplate 模板,只需输入绑定的数据字段名,和需要绑定控件类型就可自动生成。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
//using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;namespace WebApplication5
{
    public class MyLayoutTemplate : System.Web.UI.ITemplate    {
        public void InstantiateIn(System.Web.UI.Control container)
        {
           
            Table t = new Table();
            t.ID = "lvtbid";
            t.BackColor = System.Drawing.Color.Blue;
            t.CellPadding = 2;
            t.CellSpacing = 2;
            
            TableRow r = new TableRow();
            
            List<string> hlist = myheader;
            for (int i = 0; i < hlist.Count; i++)
            {
                r.Cells.Add(new TableCell() { Text = hlist[i] });
                r.Cells[i].BackColor = System.Drawing.Color.DarkGreen;
            }
                            
            t.Rows.Add(r);
            TableRow itemPlaceholderRow = new TableRow();            Table itemPlaceholderTable = new Table();
            itemPlaceholderTable.ID = "itemPlaceholder";
            itemPlaceholderRow.Cells.Add(new TableCell());
            itemPlaceholderRow.Cells[0].Controls.Add(itemPlaceholderTable);            t.Rows.Add(itemPlaceholderRow);
            
            container.Controls.Add(t);
        }
        private List<string> _myheader;
        public List<string> myheader
        {
            set
            {
                _myheader = value;
 
            }
            get
            {
                return _myheader;
            }
        }
        }
}
listview laouttemplate模板类,需要输入显示的字段头文件list<>就可以自动生成