Home All Groups Group Topic Archive Search About

GridView is making two of each column

Author
14 Nov 2007 5:57 PM
Nathan Sokalski
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
njsokal***@hotmail.com
http://www.nathansokalski.com/

Author
14 Nov 2007 6:31 PM
Barrie Wilson
don't forget the last attribute here:

<asp:DataGrid ID="DefaultGrid" Runat="server" AutoGenerateColumns=False>



Show quote
"Nathan Sokalski" <njsokal***@hotmail.com> wrote in message
news:e71mLfuJIHA.4472@TK2MSFTNGP04.phx.gbl...
>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
> njsokal***@hotmail.com
> http://www.nathansokalski.com/
>
Author
14 Nov 2007 7:30 PM
Nathan Sokalski
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
njsokal***@hotmail.com
http://www.nathansokalski.com/

Show quote
"Barrie Wilson" <bwil***@nowhere.com> wrote in message
news:13jmfnrpqrp1270@corp.supernews.com...
>
> don't forget the last attribute here:
>
> <asp:DataGrid ID="DefaultGrid" Runat="server" AutoGenerateColumns=False>
>
>
>
> "Nathan Sokalski" <njsokal***@hotmail.com> wrote in message
> news:e71mLfuJIHA.4472@TK2MSFTNGP04.phx.gbl...
>>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
>> njsokal***@hotmail.com
>> http://www.nathansokalski.com/
>>
>
>
Author
18 Nov 2007 3:36 PM
Teemu Keiski
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

Show quote
"Nathan Sokalski" <njsokal***@hotmail.com> wrote in message
news:efFkBTvJIHA.3940@TK2MSFTNGP05.phx.gbl...
> 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
> njsokal***@hotmail.com
> http://www.nathansokalski.com/
>
> "Barrie Wilson" <bwil***@nowhere.com> wrote in message
> news:13jmfnrpqrp1270@corp.supernews.com...
>>
>> don't forget the last attribute here:
>>
>> <asp:DataGrid ID="DefaultGrid" Runat="server" AutoGenerateColumns=False>
>>
>>
>>
>> "Nathan Sokalski" <njsokal***@hotmail.com> wrote in message
>> news:e71mLfuJIHA.4472@TK2MSFTNGP04.phx.gbl...
>>>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
>>> njsokal***@hotmail.com
>>> http://www.nathansokalski.com/
>>>
>>
>>
>
>

AddThis Social Bookmark Button