Dim tc1 As New TemplateColumn()
            tc1.HeaderTemplate = New _
               DataGridTemplate1(ListItemType.Header, "Column1", ds.Tables(0).Rows(0)("path").ToString)            tc1.ItemTemplate = New DataGridTemplate1(ListItemType.Item, _
               "Column1", ds.Tables(0).Rows(0)("path").ToString)
           
            tc1.EditItemTemplate = New _
               DataGridTemplate1(ListItemType.EditItem, "Column1", ds.Tables(0).Rows(0)("path").ToString)
            tc1.FooterTemplate = New _
               DataGridTemplate1(ListItemType.Footer, "Column1", ds.Tables(0).Rows(0)("path").ToString)
            DataGrid1.Columns.Add(tc1)
============
 Sub InstantiateIn(ByVal container As Control) _
       Implements ITemplate.InstantiateIn
        Dim lc As New Literal()
        Dim im As New System.Web.UI.WebControls.Image()
        Select Case templateType
            Case ListItemType.Header
                lc.Text = "<B>" & columnName & "</B>"                container.Controls.Add(lc)            Case ListItemType.Item
                im.BackColor = Color.Black
                im.ImageUrl = imgpath
                lc.Text = "Item " & columnName
                container.Controls.Add(im)
                container.Controls.Add(lc)
               .................................

解决方案 »

  1.   

    guoyan19811021(吉祥)
    谢谢你你的用vb写的,我看看不太明白  我用c#
      

  2.   

    DataGridTemplate1  
    你的这个在那里定义的???
      

  3.   

    http://www.microsoft.com/taiwan/msdn/library/2002/Feb-2002/whitepaper/vbtchcreatingwebservercontroltemplatesprogrammatically.htm
      

  4.   

    终于搞定,贴给你。昨天晚上我还不会呢。using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    //http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchcreatingwebservercontroltemplatesprogrammatically.asp
    //http://www.microsoft.com/taiwan/msdn/library/2002/Feb-2002/whitepaper/vbtchcreatingwebservercontroltemplatesprogrammatically.htm
    //http://tripleasp.net/tutorial.aspx?NavID=27
    namespace TCMIS.Template
    {
    /// <summary>
    /// ImageColumn 的摘要说明。
    /// </summary>
    public class ImageColumn : ITemplate
    {
    ListItemType templateType;
    string columnName;
    Image image;
    public ImageColumn(ListItemType type, string colname,Image img)
    {
    templateType = type;
    columnName = colname;
    image=img;
    } public void InstantiateIn(System.Web.UI.Control container)
    {
    Literal lc = new Literal();
    switch(templateType)
    {
    case ListItemType.Header:
    //lc.Text = "<B>" + columnName + "</B>";
    container.Controls.Add(lc);
    break;
    case ListItemType.Item:
    lc.DataBinding += new EventHandler(this.BindData);
    // lc.Text = "<img src="+image.ImageUrl+">";
    container.Controls.Add(lc);
    break;
    case ListItemType.EditItem:
    TextBox tb = new TextBox();
    tb.Text = "";
    container.Controls.Add(tb);
    break;
    case ListItemType.Footer:
    //lc.Text = "<I>" + columnName + "</I>";
    container.Controls.Add(lc);
    break;
    }
    } public void BindData(object sender, EventArgs e)
    {
    Literal l = (Literal) sender;
    DataGridItem container = (DataGridItem) l.NamingContainer; if (container.DataItem != null)
    {
    string s = (string)DataBinder.Eval(container.DataItem,this.columnName);
    if (s== "")
    l.Text = "";
    else 
    //l.Text = ((DataRowView) container.DataItem)[this.columnName].ToString();
    l.Text = "<img src="+image.ImageUrl+" align=center>";
    }
    }
    }
    }