' Visual Basic
Private Class DataGridTemplate
Implements ITemplate
Dim templateType As ListItemType
Dim columnName As String Sub New(ByVal type As ListItemType, ByVal ColName As String)
templateType = type
columnName = ColName
End Sub Sub InstantiateIn(ByVal container As Control) _
Implements ITemplate.InstantiateIn
Dim lc As New Literal()
Select Case templateType
Case ListItemType.Header
lc.Text = "<B>" & columnName & "</B>"
container.Controls.Add(lc)
Case ListItemType.Item
lc.Text = "Item " & columnName
container.Controls.Add(lc)
Case ListItemType.EditItem
Dim tb As New TextBox()
tb.Text = ""
container.Controls.Add(tb)
Case ListItemType.Footer
lc.Text = "<I>Footer</I>"
container.Controls.Add(lc)
End Select
End Sub
End Class// C#
public class DataGridTemplate : ITemplate
{
ListItemType templateType;
string columnName;
public DataGridTemplate(ListItemType type, string colname)
{
templateType = type;
columnName = colname;
} 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.Text = "Item " + columnName;
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;
}
}
}
Private Class DataGridTemplate
Implements ITemplate
Dim templateType As ListItemType
Dim columnName As String Sub New(ByVal type As ListItemType, ByVal ColName As String)
templateType = type
columnName = ColName
End Sub Sub InstantiateIn(ByVal container As Control) _
Implements ITemplate.InstantiateIn
Dim lc As New Literal()
Select Case templateType
Case ListItemType.Header
lc.Text = "<B>" & columnName & "</B>"
container.Controls.Add(lc)
Case ListItemType.Item
lc.Text = "Item " & columnName
container.Controls.Add(lc)
Case ListItemType.EditItem
Dim tb As New TextBox()
tb.Text = ""
container.Controls.Add(tb)
Case ListItemType.Footer
lc.Text = "<I>Footer</I>"
container.Controls.Add(lc)
End Select
End Sub
End Class// C#
public class DataGridTemplate : ITemplate
{
ListItemType templateType;
string columnName;
public DataGridTemplate(ListItemType type, string colname)
{
templateType = type;
columnName = colname;
} 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.Text = "Item " + columnName;
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;
}
}
}
解决方案 »
- 求 SqlDataAdapter 等意思
- 谁有比较好看一点的asp.net Menu菜单控件的皮肤(skin)文件,请给我一个!谢谢!
- gridview 中通过 checkbox选中记录并删除.为什么不能实现删除功能呀?
- 怎么在 formview 的 插入 记录的同时 向另外一个表也插入记录
- 一个绑定表达式
- |M| 学习写控件:第七贴: 如何让我的控件的MyColor像VS控件一样可以选颜色 谢谢
- 请教一下:sql server这样插日期不对吗?
- 内存中的一张表,如何以Excel格式输出,或者保存
- 要找oa有相关文档
- 有没有人知道淘宝网的剩余时间(倒计时)是怎么做的?
- CDO邮件发送问题?请高手看看。。。
- 谁可以提供<<ADO.NET高级编程>>电子书 中文版 急需!
see:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingtemplatesprogrammaticallyindatagridcontrol.aspCreating Web Server Control Templates Dynamically
see:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingwebservercontroltemplatesdynamically.asp
http://tripleasp.net/tutorial.aspx?NavID=27
把其中的genericitem改成textboxitem就可以了
MyConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter myCommand = new SqlDataAdapter("SELECT SaleContractDetails.Contractid, SaleContractDetails.ContractName,SaleContractDetails.ContractNumber, SaleContractDetails.CustomerID, SaleContractDetails.OrderDate, SaleContractDetails.Otime,SaleContractDetails.RequiredDate, Customers.CompanyName, Customers.Customerid AS Expr1 FROM SaleContractDetails INNER JOIN Customers ON SaleContractDetails.Customerid = Customers.Customerid WHERE SaleContractDetails.ProfessionalID="+Request.Params["ProfessionalID"]+" AND SaleContractDetails.Result = 0 ORDER BY ContractID DESC", MyConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "SaleContractDetails");
TemplateColumn tc;
tc = new TemplateColumn();
tc.HeaderText = "合同信息";
tc.ItemTemplate = new DataGridTemplate(ListItemType.Item, "ContractName");
tc.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
tc.ItemStyle.HorizontalAlign=HorizontalAlign.Left;
tc.ItemStyle.Width=(Unit)0.50;
tc.ItemStyle.Wrap = false;
MyDataGrid.Columns.Add(tc);
......
TextBox tb = new TextBox();
tb.Text = "columnName";
tb.DataBinding += new EventHandler(TemplateControl_DataBinding);
container.Controls.Add(tb);
break;
......
private void TemplateControl_DataBinding(object sender, System.EventArgs e)
{
TextBox tb;
tb = (TextBox) sender;
DataGridItem container = (DataGridItem) tb.NamingContainer;
tb.Text = ((DataRowView)container.DataItem)[columnName].ToString();
}
}
TextBox tb = new TextBox();
tb.Text = "";
TextBox tb = new TextBox();
tb.Text = "columnName";
tb.DataBinding += new EventHandler(TemplateControl_DataBinding);
container.Controls.Add(tb);
break;
......
private void TemplateControl_DataBinding(object sender, System.EventArgs e)
{
TextBox tb;
tb = (TextBox) sender;
DataGridItem container = (DataGridItem) tb.NamingContainer;
tb.Text = ((DataRowView)container.DataItem)[columnName].ToString();
}
}