Creating Templates Programmatically in the DataGrid Control http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingtemplatesprogrammaticallyindatagridcontrol.asp
解决了,怎么自己不可以给自己分啊。呵呵.... TemplateColumn tc2 = new TemplateColumn(); tc2.ItemTemplate = new DataGridTemplate(ListItemType.SelectedItem,"选择列"); base.Columns.AddAt(0,tc2); ....
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: case ListItemType.SelectedItem: //添加一个可选择模板列 //HyperLink hl = new HyperLink(); LinkButton lb = new LinkButton(); lb.Text = "选择"; lb.CommandName = "Select"; container.Controls.Add(lb); 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; } }
是不是要加一个模板列(checkbox)?
<asp:ButtonColumn Text="选择" CommandName="Select"></asp:ButtonColumn>要求动态增加
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="select" Runat="server" Checked="False"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
运行时,在DataGrid的ItemCreated事件中动态增加。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingtemplatesprogrammaticallyindatagridcontrol.asp
TemplateColumn tc2 = new TemplateColumn();
tc2.ItemTemplate = new DataGridTemplate(ListItemType.SelectedItem,"选择列");
base.Columns.AddAt(0,tc2);
....
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:
case ListItemType.SelectedItem:
//添加一个可选择模板列
//HyperLink hl = new HyperLink();
LinkButton lb = new LinkButton();
lb.Text = "选择";
lb.CommandName = "Select";
container.Controls.Add(lb);
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;
}
}