GridView is making two of each column

Discussion in 'ASP .Net Web Controls' started by Nathan Sokalski, Nov 14, 2007.

  1. I have a GridView control with three columns, all BoundField columns. They
    all have a HeaderText and DataField property set, and the third one has a
    DataFormatString property as well. When I run my code, the GridView displays
    two sets of columns. The first set looks exactly as I would expect. The
    second set, which should not be there anyway, uses the DataField as the
    header and does not apply the DataFormatString for the third column. What is
    going on here? Here is my GridView control:

    <asp:GridView ID="grdGifts" runat="server" PageSize="15"
    PagerSettings-Mode="NextPrevious" PagerSettings-NextPageText="Next 15
    Products" PagerSettings-Position="Bottom"
    PagerSettings-PreviousPageText="Previous 15 Products"
    EnableSortingAndPagingCallbacks="true" AllowPaging="true"
    AllowSorting="true">
    <Columns>
    <asp:BoundField HeaderText="Products" DataField="prodname"/>
    <asp:BoundField HeaderText="Brand" DataField="brandname"/>
    <asp:BoundField HeaderText="Action" DataField="prodid"
    DataFormatString="[&nbsp;<a
    href='edit_product.asp?prodid={0}'>Edit</a>&nbsp;/&nbsp;<a
    href='delete_product.asp?prodid={0}'>Delete</a>&nbsp;]"/>
    </Columns>
    </asp:GridView>

    The Load event for the GridView is as follows:

    Private Sub grdGifts_Load(ByVal sender As Object, ByVal e As
    System.EventArgs) Handles grdGifts.Load
    Dim myconnection As New
    SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionstring"))
    Dim gifts As New DataTable
    Dim giftadapter As New SqlDataAdapter("SELECT
    products.prodname,brands.brandname,products.prodid FROM products INNER JOIN
    brands ON prodbrand=brandid", myconnection)
    giftadapter.Fill(gifts)
    Me.grdGifts.DataSource = gifts
    Me.grdGifts.DataBind()
    End Sub

    If anybody has any idea why this is happening, I would appreciate the help.
    Thanks.
    --
    Nathan Sokalski

    http://www.nathansokalski.com/
     
    Nathan Sokalski, Nov 14, 2007
    #1
    1. Advertising

  2. My sorting also isn't working. I looked at the generated code, and it looks
    correct. Here is the code for my GridView and the databinding:

    <asp:GridView ID="grdGifts" runat="server" PageSize="15"
    PagerSettings-Mode="NextPrevious" PagerSettings-NextPageText="Next 15
    Products" PagerSettings-Position="Bottom"
    PagerSettings-PreviousPageText="Previous 15 Products"
    EnableSortingAndPagingCallbacks="true" AllowPaging="true"
    AllowSorting="true" AutoGenerateColumns="false">
    <Columns>
    <asp:BoundField HeaderText="Products" DataField="prodname"
    SortExpression="products.prodname"/>
    <asp:BoundField HeaderText="Brand" DataField="brandname"
    SortExpression="brands.brandname"/>
    <asp:BoundField HeaderText="Action" DataField="prodid"
    DataFormatString="[&nbsp;<a
    href='edit_product.asp?prodid={0}'>Edit</a>&nbsp;/&nbsp;<a
    href='delete_product.asp?prodid={0}'>Delete</a>&nbsp;]"/>
    </Columns>
    </asp:GridView>

    Private Sub grdGifts_Load(ByVal sender As Object, ByVal e As
    System.EventArgs) Handles grdGifts.Load
    Dim myconnection As New
    SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionstring"))
    Dim gifts As New DataTable
    Dim giftadapter As New SqlDataAdapter("SELECT
    products.prodname,brands.brandname,products.prodid FROM products INNER JOIN
    brands ON products.prodbrand=brands.brandid", myconnection)
    giftadapter.Fill(gifts)
    Me.grdGifts.DataSource = gifts
    Me.grdGifts.DataBind()
    End Sub

    Am I also forgetting some simple little thing for the sorting? I have the
    AllowSorting="true" and the SortExpression property for the columns that I
    need to be sortable. Is there something else I need? Thanks.
    --
    Nathan Sokalski

    http://www.nathansokalski.com/

    "Barrie Wilson" <> wrote in message
    news:...
    >
    > don't forget the last attribute here:
    >
    > <asp:DataGrid ID="DefaultGrid" Runat="server" AutoGenerateColumns=False>
    >
    >
    >
    > "Nathan Sokalski" <> wrote in message
    > news:...
    >>I have a GridView control with three columns, all BoundField columns. They
    >>all have a HeaderText and DataField property set, and the third one has a
    >>DataFormatString property as well. When I run my code, the GridView
    >>displays two sets of columns. The first set looks exactly as I would
    >>expect. The second set, which should not be there anyway, uses the
    >>DataField as the header and does not apply the DataFormatString for the
    >>third column. What is going on here? Here is my GridView control:
    >>
    >> <asp:GridView ID="grdGifts" runat="server" PageSize="15"
    >> PagerSettings-Mode="NextPrevious" PagerSettings-NextPageText="Next 15
    >> Products" PagerSettings-Position="Bottom"
    >> PagerSettings-PreviousPageText="Previous 15 Products"
    >> EnableSortingAndPagingCallbacks="true" AllowPaging="true"
    >> AllowSorting="true">
    >> <Columns>
    >> <asp:BoundField HeaderText="Products" DataField="prodname"/>
    >> <asp:BoundField HeaderText="Brand" DataField="brandname"/>
    >> <asp:BoundField HeaderText="Action" DataField="prodid"
    >> DataFormatString="[&nbsp;<a
    >> href='edit_product.asp?prodid={0}'>Edit</a>&nbsp;/&nbsp;<a
    >> href='delete_product.asp?prodid={0}'>Delete</a>&nbsp;]"/>
    >> </Columns>
    >> </asp:GridView>
    >>
    >> The Load event for the GridView is as follows:
    >>
    >> Private Sub grdGifts_Load(ByVal sender As Object, ByVal e As
    >> System.EventArgs) Handles grdGifts.Load
    >> Dim myconnection As New
    >> SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionstring"))
    >> Dim gifts As New DataTable
    >> Dim giftadapter As New SqlDataAdapter("SELECT
    >> products.prodname,brands.brandname,products.prodid FROM products INNER
    >> JOIN brands ON prodbrand=brandid", myconnection)
    >> giftadapter.Fill(gifts)
    >> Me.grdGifts.DataSource = gifts
    >> Me.grdGifts.DataBind()
    >> End Sub
    >>
    >> If anybody has any idea why this is happening, I would appreciate the
    >> help. Thanks.
    >> --
    >> Nathan Sokalski
    >>
    >> http://www.nathansokalski.com/
    >>

    >
    >
     
    Nathan Sokalski, Nov 14, 2007
    #2
    1. Advertising

  3. Nathan Sokalski

    Teemu Keiski Guest

    Code in Page_Load would need to be inside If Not Page.IsPostBack Then check
    so that it won't prevent postback events (such as Sorting event) from
    working.


    --
    Teemu Keiski
    AspInsider, ASP.NET MVP
    http://blogs.aspadvice.com/joteke
    http://teemukeiski.net

    "Nathan Sokalski" <> wrote in message
    news:...
    > My sorting also isn't working. I looked at the generated code, and it
    > looks correct. Here is the code for my GridView and the databinding:
    >
    > <asp:GridView ID="grdGifts" runat="server" PageSize="15"
    > PagerSettings-Mode="NextPrevious" PagerSettings-NextPageText="Next 15
    > Products" PagerSettings-Position="Bottom"
    > PagerSettings-PreviousPageText="Previous 15 Products"
    > EnableSortingAndPagingCallbacks="true" AllowPaging="true"
    > AllowSorting="true" AutoGenerateColumns="false">
    > <Columns>
    > <asp:BoundField HeaderText="Products" DataField="prodname"
    > SortExpression="products.prodname"/>
    > <asp:BoundField HeaderText="Brand" DataField="brandname"
    > SortExpression="brands.brandname"/>
    > <asp:BoundField HeaderText="Action" DataField="prodid"
    > DataFormatString="[&nbsp;<a
    > href='edit_product.asp?prodid={0}'>Edit</a>&nbsp;/&nbsp;<a
    > href='delete_product.asp?prodid={0}'>Delete</a>&nbsp;]"/>
    > </Columns>
    > </asp:GridView>
    >
    > Private Sub grdGifts_Load(ByVal sender As Object, ByVal e As
    > System.EventArgs) Handles grdGifts.Load
    > Dim myconnection As New
    > SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionstring"))
    > Dim gifts As New DataTable
    > Dim giftadapter As New SqlDataAdapter("SELECT
    > products.prodname,brands.brandname,products.prodid FROM products INNER
    > JOIN brands ON products.prodbrand=brands.brandid", myconnection)
    > giftadapter.Fill(gifts)
    > Me.grdGifts.DataSource = gifts
    > Me.grdGifts.DataBind()
    > End Sub
    >
    > Am I also forgetting some simple little thing for the sorting? I have the
    > AllowSorting="true" and the SortExpression property for the columns that I
    > need to be sortable. Is there something else I need? Thanks.
    > --
    > Nathan Sokalski
    >
    > http://www.nathansokalski.com/
    >
    > "Barrie Wilson" <> wrote in message
    > news:...
    >>
    >> don't forget the last attribute here:
    >>
    >> <asp:DataGrid ID="DefaultGrid" Runat="server" AutoGenerateColumns=False>
    >>
    >>
    >>
    >> "Nathan Sokalski" <> wrote in message
    >> news:...
    >>>I have a GridView control with three columns, all BoundField columns.
    >>>They all have a HeaderText and DataField property set, and the third one
    >>>has a DataFormatString property as well. When I run my code, the GridView
    >>>displays two sets of columns. The first set looks exactly as I would
    >>>expect. The second set, which should not be there anyway, uses the
    >>>DataField as the header and does not apply the DataFormatString for the
    >>>third column. What is going on here? Here is my GridView control:
    >>>
    >>> <asp:GridView ID="grdGifts" runat="server" PageSize="15"
    >>> PagerSettings-Mode="NextPrevious" PagerSettings-NextPageText="Next 15
    >>> Products" PagerSettings-Position="Bottom"
    >>> PagerSettings-PreviousPageText="Previous 15 Products"
    >>> EnableSortingAndPagingCallbacks="true" AllowPaging="true"
    >>> AllowSorting="true">
    >>> <Columns>
    >>> <asp:BoundField HeaderText="Products" DataField="prodname"/>
    >>> <asp:BoundField HeaderText="Brand" DataField="brandname"/>
    >>> <asp:BoundField HeaderText="Action" DataField="prodid"
    >>> DataFormatString="[&nbsp;<a
    >>> href='edit_product.asp?prodid={0}'>Edit</a>&nbsp;/&nbsp;<a
    >>> href='delete_product.asp?prodid={0}'>Delete</a>&nbsp;]"/>
    >>> </Columns>
    >>> </asp:GridView>
    >>>
    >>> The Load event for the GridView is as follows:
    >>>
    >>> Private Sub grdGifts_Load(ByVal sender As Object, ByVal e As
    >>> System.EventArgs) Handles grdGifts.Load
    >>> Dim myconnection As New
    >>> SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionstring"))
    >>> Dim gifts As New DataTable
    >>> Dim giftadapter As New SqlDataAdapter("SELECT
    >>> products.prodname,brands.brandname,products.prodid FROM products INNER
    >>> JOIN brands ON prodbrand=brandid", myconnection)
    >>> giftadapter.Fill(gifts)
    >>> Me.grdGifts.DataSource = gifts
    >>> Me.grdGifts.DataBind()
    >>> End Sub
    >>>
    >>> If anybody has any idea why this is happening, I would appreciate the
    >>> help. Thanks.
    >>> --
    >>> Nathan Sokalski
    >>>
    >>> http://www.nathansokalski.com/
    >>>

    >>
    >>

    >
    >
     
    Teemu Keiski, Nov 18, 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.
Similar Threads
  1. Krishna
    Replies:
    0
    Views:
    528
    Krishna
    Jul 13, 2006
  2. Keithb
    Replies:
    2
    Views:
    1,162
  3. Nathan Sokalski

    GridView is making two of each column

    Nathan Sokalski, Nov 14, 2007, in forum: ASP .Net
    Replies:
    3
    Views:
    353
    Teemu Keiski
    Nov 18, 2007
  4. Keith G Hicks
    Replies:
    3
    Views:
    779
    Keith G Hicks
    Feb 18, 2008
  5. Andy B.
    Replies:
    1
    Views:
    824
    Cowboy \(Gregory A Beamer\)
    Feb 12, 2009
Loading...

Share This Page