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)
.................................
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)
.................................
谢谢你你的用vb写的,我看看不太明白 我用c#
你的这个在那里定义的???
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>";
}
}
}
}