Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / DataGrid / November 2006

Tip: Looking for answers? Try searching our database.

Sorting with datasource ArrayList

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Martin Gregersen - 10 Nov 2006 10:49 GMT
Hi everybody

I have a GridView control where my datasource is an ArrayList, I would like to be able to sort the grid, therefore I set the AllowSorting to true, so far so good. The ArrayList consist of a collection of Customer-objects, where the "Title" (a string) is the name of the Customer.

Below is my sourcecode for the Sorting event and the control itself, I don't know what is wrong, but when I click a column to sort I get an: System.StackOverflowException was unhandled

Can anyone please show an example of a sorting that works with an ArrayList as datasource in a grid.

If you need any addiotnal details let me know. :o)

Thanks in advance

Martin Gregersen
WebShine A/S
gregersen(add)webshine(dot)dk

--- gwCustomerList_Sorting Source ----

   protected void gwCustomerList_Sorting(object sender, GridViewSortEventArgs e)

   {

       Trace.Write("Customers.aspx.cs", "gwCustomerList_Sorting(object sender, GridViewSortEventArgs e)");

       try

       {

           Trace.Write("SortExpression: " + e.SortExpression.ToString());

           Trace.Write("SortDirection: " + e.SortDirection.ToString());

           gwCustomerList.DataSource = _alCustomerList;

           gwCustomerList.Sort(e.SortExpression, e.SortDirection);

           gwCustomerList.DataBind();

       }

       catch (Exception ex)

       {

           Trace.Write("Exception: " + ex.Message);

       }

   }

---- Grid Source ----
   <asp:GridView ID="gwCustomerList" runat="server" AutoGenerateColumns="False"

       CellPadding="4" ForeColor="#333333" GridLines="None" OnPageIndexChanging="gwCustomerList_PageIndexChanging" PageSize="15" AllowPaging="True" meta:resourcekey="gwCustomerListResource1" AllowSorting="True" OnSorting="gwCustomerList_Sorting">

       <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />

       <Columns>

           <asp:TemplateField SortExpression="ElementNumber" HeaderText="<%$ Resources:objCustomer, Number %>">

               <ItemTemplate>

                   <%# link("ElementID",Eval("ElementId"),Eval("ElementNumber"))%>

               </ItemTemplate>

           </asp:TemplateField>

           <asp:TemplateField HeaderText="<%$ Resources:objCustomer, Phone %>" SortExpression="Phone">

               <ItemTemplate>

                   <%# (Eval("Address.Phone")) %>

               </ItemTemplate>

           </asp:TemplateField>

           <asp:BoundField DataField="Title" HeaderText="<%$ Resources:objCustomer, Title %>" SortExpression="Title" />

           <asp:TemplateField HeaderText="<%$ Resources:objCustomer, Attention %>">

               <ItemTemplate>

               <%# (Eval("Address.Contact")) %>

               </ItemTemplate>

           </asp:TemplateField>

           <asp:TemplateField HeaderText="<%$ Resources:objCustomer, Address %>">

               <ItemTemplate>

                   <%# (Eval("Address.Address1")) %>

               </ItemTemplate>

           </asp:TemplateField>            

       </Columns>

       <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />

       <EditRowStyle BackColor="#999999" />

       <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />

       <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />

       <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" HorizontalAlign="Left" />

       <AlternatingRowStyle BackColor="Beige" ForeColor="#333333" />

   </asp:GridView>
mtadd - 10 Nov 2006 22:07 GMT
The Sort method of the Gridview control raises the Sorting and Sorted
Events...that's why you're getting a stack overflow.  Instead, you
should sort your data source (_alCustomerList) according to the
SortDirection and SortExpression provided by the EventArgs prior to
Databinding it to the Gridview in the Sorting Event.

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.