Asp.net 重写功能未触发

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

我创建了一个从gridview继承的控件:

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中被标记为已过时,因此不适合继续使用,但还没有找到什么(如果有的话)可以替代它。你有没有想过?