任何人都可以告诉我,使用TemplateColumns,GridView是否可以使用此示例中的详细内容。 http://www.codeproject.com/KB/webforms/CustomDataGridColumn.aspx
我需要动态生成一个GridView,它可能不需要在列中有一个数据类型。说第1列可以有Checkbox或TextBox控件(当然是基于逻辑)
我尝试在InstantiateIn()中实现ITemplate并添加自定义控件,但据我所知 - 这里的绑定是在每个列级而不是在每个Item级别上。
我怎样才能实现这个目标?
提前致谢。如果问题需要进一步澄清,我可以删除我的代码。
答案 0 :(得分:2)
是的,Telerik的RadGrid支持这一点。
相同的代码只能进行微小的更改。例如,ListItemType
变为GridItemType
。 DataGridItem
变为GridDataItem
等。此外,Telerik创建控件的方式意味着某些索引需要更改。例如,他们的ItemDataBound
事件有以下代码:
string dataType = e.Item.Cells[0].Text;
但是使用Telerik RadGrid,需要:
string dataType = e.Item.Cells[2].Text;
除了那些微小的变化之外,它都适用于RadGrid。
注意:当我看到来自Telerik的代码示例时,它们通常会采用不同的路径。我看到它们为单元格提供自定义内容的方法是将自定义逻辑放在ItemCreated事件中。这将被调用每一行。因此,您可以让列的模板包含所有可能的控件,然后在ItemCreating事件中,通过根据您的逻辑将正确的控件设置为Visible来修改该模板的实例(这是您链接到的文章中使用的方法)。或者,您可以在该事件中仅为正确的控件类型创建单个特定控件。 ItemCreated事件的Here is the documentation以及Telerik的代码示例,它修改了每行的LinkButton,但可以使用相同的方法。