Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net Datagrid Control (http://www.velocityreviews.com/forums/f60-asp-net-datagrid-control.html)
-   -   Sorting with datasource ArrayList (http://www.velocityreviews.com/forums/t763052-sorting-with-datasource-arraylist.html)

Martin Gregersen 11-10-2006 10:49 AM

Sorting with datasource ArrayList
 
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_PageIndexChang ing" 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("ElementNu mber"))%>

</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 11-10-2006 10:07 PM

Re: Sorting with datasource ArrayList
 
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.



All times are GMT. The time now is 04:23 AM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57