AutoGeneratedField

Discussion in 'ASP .Net Building Controls' started by Bora, May 23, 2007.

  1. Bora

    Bora Guest

    Why a TemplateField cannot be a AutoGeneratedField when we have an inherited
    GridView class?

    What is the difference between
    System.Collections.ICollection CreateColumns(PagedDataSource dataSource,
    bool useDataSource)
    and
    AutoGeneratedField CreateAutoGeneratedColumn(AutoGeneratedFieldProperties
    fieldProperties)
    ?

    Regards,
    Bora Inceler
    Bora, May 23, 2007
    #1
    1. Advertising

  2. Bora

    Guest

    > Why a TemplateField cannot be a AutoGeneratedField when we have an inherited
    > GridView class?


    It's because AutoGeneratedField is a final class that inherits from
    BoundField which inherits DataControlField and TemplateField inherits
    DataControlField.

    The CreateColumns method is used to create the automatically generated
    column fields. Never used this method myself but see Dino Esposito's
    article for an example on using CreateColumns() -
    http://msdn.microsoft.com/msdnmag/issues/06/05/cuttingedge/default.aspx

    The CreateAutoGeneratedColumn method creates one instance of a
    AutoGeneratedField.
    Say you wanted to autogenerate the fields for a gridview but only
    enable sorting on 1 known field called "Supplier" then you'll probably
    do something like:

    Imports System.Web.UI.WebControls

    Namespace SampleControls
    Public Class CustomGridView
    Inherits GridView

    Protected Overrides Function CreateAutoGeneratedColumn(ByVal
    fieldProperties As
    System.Web.UI.WebControls.AutoGeneratedFieldProperties) As
    System.Web.UI.WebControls.AutoGeneratedField

    Dim field As AutoGeneratedField =
    MyBase.CreateAutoGeneratedColumn(fieldProperties)

    'Turn off sorting on non-Supplier columns and leave
    sorting only on the Supplier column
    If field.HeaderText <> "Supplier" Then
    field.SortExpression = ""
    End If

    Return field
    End Function

    End Class
    End Namespace

    Andy

    On 23 May, 11:24, "Bora" <> wrote:
    > Why a TemplateField cannot be a AutoGeneratedField when we have an inherited
    > GridView class?
    >
    > What is the difference between
    > System.Collections.ICollection CreateColumns(PagedDataSource dataSource,
    > bool useDataSource)
    > and
    > AutoGeneratedField CreateAutoGeneratedColumn(AutoGeneratedFieldProperties
    > fieldProperties)
    > ?
    >
    > Regards,
    > Bora Inceler
    , May 29, 2007
    #2
    1. Advertising

  3. Bora

    Bora Guest

    Thanks for the response.

    All the things you told are fair and self-definitive.

    Why I can't autogenerate custom fields? AutoGeneratedField is sub-class for
    BoundField but I can't use other BoundField inherited class. Forcing to
    return AutoGeneratedField is against OO for autogeneration. That should be
    fixed. I can't autogenerate a CheckBoxField or TemplateField. (I not have my
    own autogeneration using CreateColumns, so not bothering with this now) But
    the AutoGeneratedField class should be dropped and DataControlField should
    be used for CreateAutoGeneratedColumn method.

    Am I wrong?

    Bora

    <> wrote in message
    news:...
    >> Why a TemplateField cannot be a AutoGeneratedField when we have an
    >> inherited
    >> GridView class?

    >
    > It's because AutoGeneratedField is a final class that inherits from
    > BoundField which inherits DataControlField and TemplateField inherits
    > DataControlField.
    >
    > The CreateColumns method is used to create the automatically generated
    > column fields. Never used this method myself but see Dino Esposito's
    > article for an example on using CreateColumns() -
    > http://msdn.microsoft.com/msdnmag/issues/06/05/cuttingedge/default.aspx
    >
    > The CreateAutoGeneratedColumn method creates one instance of a
    > AutoGeneratedField.
    > Say you wanted to autogenerate the fields for a gridview but only
    > enable sorting on 1 known field called "Supplier" then you'll probably
    > do something like:
    >
    > Imports System.Web.UI.WebControls
    >
    > Namespace SampleControls
    > Public Class CustomGridView
    > Inherits GridView
    >
    > Protected Overrides Function CreateAutoGeneratedColumn(ByVal
    > fieldProperties As
    > System.Web.UI.WebControls.AutoGeneratedFieldProperties) As
    > System.Web.UI.WebControls.AutoGeneratedField
    >
    > Dim field As AutoGeneratedField =
    > MyBase.CreateAutoGeneratedColumn(fieldProperties)
    >
    > 'Turn off sorting on non-Supplier columns and leave
    > sorting only on the Supplier column
    > If field.HeaderText <> "Supplier" Then
    > field.SortExpression = ""
    > End If
    >
    > Return field
    > End Function
    >
    > End Class
    > End Namespace
    >
    > Andy
    >
    > On 23 May, 11:24, "Bora" <> wrote:
    >> Why a TemplateField cannot be a AutoGeneratedField when we have an
    >> inherited
    >> GridView class?
    >>
    >> What is the difference between
    >> System.Collections.ICollection CreateColumns(PagedDataSource dataSource,
    >> bool useDataSource)
    >> and
    >> AutoGeneratedField CreateAutoGeneratedColumn(AutoGeneratedFieldProperties
    >> fieldProperties)
    >> ?
    >>
    >> Regards,
    >> Bora Inceler

    >
    >
    Bora, Jun 12, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page