.net - 代码隐藏中的 ITemplate 和 DataGrid 列

标签 .net asp.net datagrid itemplate

我有一种情况,我需要使用数据网格并在 PageInit 中动态添加列,因为网格有一些必须处理的条件请求。我很容易使用 BoundColumns 和 ButtonColumns,这些都很容易。问题在于通过代码创建 TemplateColumn。我已经找到了有关创建自定义类的示例,该自定义类通过创建使用 ITemplate 实现的类来动态添加控件。这行得通,但是,我正在努力解决如何对元素进行数据绑定(bind)。

在我的网格中,我会使用 <%= DataBinder.Eval(Container.DataItem, "MyValue") %> 或类似的,但这不是一个选项。 ITemplate 中的容器也没有数据项属性,所以我不能在那里绑定(bind)。任何人都有可能有帮助的建议或链接,我只是在谷歌中找不到合适的东西。

最佳答案

您可以将事件处理程序附加到您在 ITemplate.InstantiateIn 中创建的控件的 DataBinding 事件,如 this MSDN Article .发送者将是控件,而 NamingContainer 属性将是 DataGridItem,它具有对 DataItem 的引用,您可以使用它来获取所需的任何数据。

关于.net - 代码隐藏中的 ITemplate 和 DataGrid 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/307333/

相关文章:

c# - .NET 的免费代码度量工具(应该可以通过控制台直接从 NAnt 调用)

asp.net - 除 MS-SQL 外,是否有任何适用于数据库的 linq-to-sql?

c# - 动态加载的程序集中 XML 反序列化时出现 NullReferenceException

wpf - 如何在数据网格中显示多个 ListView

WPF DataGrid - 以编程方式将单元格设置为编辑模式

.net - 通过具有 Windows (NTLM) 身份验证的代理访问具有基本身份验证的 Web 服务

.net - 获取任何给定字符的像素宽度

c# - 数据集或数据表的 WriteXml 是否使用内存?

javascript - IE9 IFrame 显示问题 - 控件在刷新之前不呈现

C# WPF DataGrid 垂直滚动