?
Solved

i've display a dataTable in a repeater, how can filter the display?

Posted on 2007-11-14
8
Medium Priority
?
238 Views
Last Modified: 2008-02-01
i 'd like to be able to filter depending the header that was pressed on
a table displayed after a repeater?
the repeater repeats the  table rows.

i think there must be a solution somewhere, i need the link.
0
Comment
Question by:toshi_
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
8 Comments
 
LVL 10

Expert Comment

by:Oliver Amaya
ID: 20280746
Hi, I'm not sure exactly how you're doing the handling of the datatable and repeater, in any case you should be able to cause a postback when a header is clicked, and to filter the datatable use the RowFilter property of the DefaultView:

myDataTable.DefaultView.RowFilter = "lastname = 'smith'";

http://msdn2.microsoft.com/en-us/library/system.data.dataview.rowfilter(vs.71).aspx
0
 

Author Comment

by:toshi_
ID: 20284446
hi joex911,

do you like porshe cars?
here 's the way i'm handling the datatable and repeater.


html
----------------------------------------------------------------------------------------------------------------
<TABLE>
  <TR>
      <TD class="td_ca_ecolog_6">level min</TD>
      <TD class="td_ca_ecolog_7">volume</TD>
  </TR>
</TABLE>

<asp:Panel id="panelEcologsZoneWrapper" class="cu_ecologZoneWrapper" runat="server">
      <table id="sub_account_zone" border="1px" >
            <asp:Repeater ID="repEcolog" Runat="server" OnItemDataBound="treatItem" >
                  <ItemTemplate>
                        <tr style="over:red;color:grey;" onmouseover="this.className='over'" onmouseout="this.className=''">
                                     <td class="td_ca_ecolog_5">&nbsp;<%# DataBinder.Eval(Container.DataItem, "depth_min") %></td>
                              <td class="td_ca_ecolog_6">&nbsp;<%# DataBinder.Eval(Container.DataItem, "volume") %></td>
                              </tr>
                        </ItemTemplate>
                  </asp:Repeater>
            </table>      
</asp:Panel>
----------------------------------------------------------------------------------------------------------------
code behind:
....
      repEcolog.DataSource = controller_.FetchEcologList();      
      repEcolog.DataBind();
....
i have a table for headers because i want them fix, when i scroll the values.
my controller return the dataTable right to the repeater, but i could get it to a local dataTable of the page
(would it make it faster instead of recreating a method in controller?)
what i need to know is where to launch the filter, with javascript on the header
something out of the repeater ?

i need to reorder increasing or decreasing, i want my header links as toogle buttons, once click filter increasing,
once clicked again filter decreasing.


note: you can see that i have a treatItem method, it's empty it's doing anything.

0
 
LVL 10

Expert Comment

by:Oliver Amaya
ID: 20288406
Ok, so what you want to do is sort the table in ascending or descending order, not filter the results? I think that for this it be easier if you use a DataGrid control (.NET 1.1) or a GridView control (.NET 2.0), they provide the means to add the sorting functionality to your data.

http://dotnetjunkies.com/Article/B7C5AB3C-4D2E-4800-A071-6F40D57699C3.dcik
http://aspnet.4guysfromrolla.com/articles/052202-1.aspx
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Author Comment

by:toshi_
ID: 20288851
i'm gonna try with dataGrid as i'm using .NET 1.1

hem! anywas, is there a possibility to do ti via my poor repeater?
0
 
LVL 10

Expert Comment

by:Oliver Amaya
ID: 20289327
You could do it with the repeater, maybe use a asp:hyperlink for the headers off each column, then on the click event apply a sort to your datatable, also you need to keep track in a session variable if it should be ascending (ASC) or descending (DESC):


if(session["SortDir"].ToString() == "ASC")
  DataTable.Sort = "Column DESC";
else
  DataTable.Sort = "Column ASC";

Open in new window

0
 

Author Comment

by:toshi_
ID: 20302818
shure, i found that
dtTemp.DefaultView.Sort = "weight DESC";
would sort my table on my weight column,

but how to fire the event to be able to sort this in code behind?
i can not add event to the hyperlink, only javascript.
0
 
LVL 10

Accepted Solution

by:
Oliver Amaya earned 1500 total points
ID: 20304134
If you use an asp:linkbutton you should be able to use its onclick event on your code-behind.
<asp:linkbutton id="LinkButton1" runat="server">Link Test</asp:linkbutton>
 
private void LinkButton1_Click(object sender, System.EventArgs e)
{
  // code to sort your table
}

Open in new window

0
 

Author Comment

by:toshi_
ID: 20326933
thanks a lot ,
i succeed with your help.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question