Asp.net 重写功能未触发
我创建了一个从gridview继承的控件:Asp.net 重写功能未触发,asp.net,custom-controls,Asp.net,Custom Controls,我创建了一个从gridview继承的控件: Partial Public Class nullGridView Inherits System.Web.UI.WebControls.GridView Protected Overrides Function CreateAutoGeneratedColumn(ByVal fieldProperties As AutoGeneratedFieldProperties) As AutoGeneratedField
Partial Public Class nullGridView
Inherits System.Web.UI.WebControls.GridView
Protected Overrides Function CreateAutoGeneratedColumn(ByVal fieldProperties As AutoGeneratedFieldProperties) As AutoGeneratedField
' Create an AutoGeneratedField object.
Dim field As New AutoGeneratedField(fieldProperties.DataField)
' Set the properties of the AutoGeneratedField using
' the values from the AutoGeneratedFieldProperties
' object contained in the fieldProperties parameter.
CType(field, IStateManager).TrackViewState()
field.HeaderText = fieldProperties.Name
field.SortExpression = fieldProperties.Name
field.ReadOnly = fieldProperties.IsReadOnly
field.DataType = fieldProperties.Type
field.NullDisplayText = "NULL"
Return field
End Function
End Class
然后我可以在codebehind中创建类的实例,并将它们放入占位符中。但是,我试图覆盖的函数从不触发。我根据Microsoft文档和其他来源检查了它的签名,它似乎与文档中的签名相同,但从未被调用。关于它为什么不工作,或者如何调试这类问题,有什么建议吗
(注意,我还在类中放入了一个构造函数,该构造函数被调用为OK-只有上面的构造函数没有被调用)。来自文档:
当AutoGenerateColumns属性设置为true时
自动生成的字段对象将自动为中的每个字段创建
数据源。然后,每个字段将显示为列表中的一列
GridView控件,按字段在数据中的显示顺序排列
来源。此选项提供了显示每个字段的方便方式
在数据源中;但是,您对
自动生成的列字段将显示或显示
您是否在某处将AutoGenerateColumns
设置为true?您还需要为网格提供一个数据源。您使用的是哪种数据源
如果您已根据上面的链接设置了所有内容,则不必重写函数以获取代码中的行为,因为它将自动创建这些实例。再进一步看一看:它已经过时了,所以我很难知道它今天做了什么
如果您看一下,它会提供一些选项,说明您可以如何控制生成的内容,例如使用
ColumnsGenerator
感谢您的快速回复。是的,AutoGenerateColumns设置为true,网格的数据源设置为Linq查询。下面是gridview的实例化方式:Dim gv=New nullGridView
placeholder.Controls.Add(gv)
gv.DataSourceID=“LinqDataSource1”
gv.AutoGenerateColumns=True
gv.DataBind()
我重写函数的原因是为了在任意表中获得对NULL的支持。还有其他方法吗?在新的PC上安装VS2013后,我遇到了一个类似的问题,我们已经编写了一个自定义控件,该控件已经运行了多年,并且在使用2013编译器构建后(甚至针对.NET 4),该方法似乎没有启动。这个方法现在在.NET4.5中被标记为已过时,因此不适合继续使用,但还没有找到什么(如果有的话)可以替代它。你有没有想过?