关于后台生成的模板列的数据绑定问题

博客给出了动态产生模版列的代码示例,定义了 DataGridTemplate 类实现 ITemplate 接口,根据不同的 ListItemType 类型添加不同控件。还给出了绑定字段的示例,通过 DataBinding 事件和 BindLabelColumn 方法实现数据绑定,并提供了相关参考链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态产生模版列参考:
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 = "" + columnName + "";
??????????? 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 = "" + columnName + "";
??????????? container.Controls.Add(lc);
??????????? break;
????? }
?? }
}
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingtemplatesprogrammaticallyindatagridcontrol.asp
邦定字段例:
lc.DataBinding += new System.EventHandler(BindLabelColumn)

...

private void BindLabelColumn(object sender, EventArgs e)
{
??????Label lbl = (Label)sender;
??????DataGridItem Container = (DataGridItem)lbl.NamingContainer;
??????lbl.Text = DataBinder.Eval(Container.DataItem, Field1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值