sorting - How do I display a Wicket Datatable, sorted by a specific column by default? -


i have question regarding wicket's datatable. using datatable display few columns of data.

my table set follows:

datatable<column> datatable = new datatable<column>("columnstable", columns, provider, maxrowsperpage) {             @override             protected item<column> newrowitem(string id, int index, imodel<column> model) {                 return new oddevenitem<column>(id, index, model);             }         }; 

the columns so:

columns[0] =  new propertycolumn<column>(new model<string>("description"), "description", "description"); columns[1] =  new propertycolumn<column>(new model<string>("logic"), "columnlogic"); columns[2] =  new propertycolumn<column>(new model<string>("type"), "datatype", "datatype"); 

here column data provider:

public class columnsortabledataprovider extends sortabledataprovider<column> { private static final long serialversionuid = 1l;  private list<column> list = null;  public columnsortabledataprovider(table table) {     this.list = arrays.aslist(table.getcolumns().toarray(new column[0])); }  public columnsortabledataprovider(list<column> list) {     this.list = list; }  @override public iterator<? extends column> iterator(int first, int count) {     /*     first - first row of data     count - minimum number of elements retrieve     method returns iterator capable of iterating on {first, first+count} items      */      iterator<column> iterator = null;      try {         if(getsort() != null) {             collections.sort(list, new comparator<column>() {                 private static final long serialversionuid = 1l;                  @override                 public int compare(column c1, column c2) {                     int result=1;                     propertymodel<comparable> model1= new propertymodel<comparable>(c1, getsort().getproperty());                     propertymodel<comparable> model2= new propertymodel<comparable>(c2, getsort().getproperty());                      if(model1.getobject() == null && model2.getobject() == null)                          result = 0;                     else if(model1.getobject() == null)                          result = 1;                     else if(model2.getobject() == null)                          result = -1;                     else                          result = ((comparable)model1.getobject()).compareto(model2.getobject());                      result = getsort().isascending() ? result : -result;                      return result;                 }             });         }          if (list.size() > (first+count))             iterator = list.sublist(first, first+count).iterator();         else             iterator = list.iterator();     }      catch (exception e) {         e.printstacktrace();     }      return iterator; } 

sorting clicking column works perfectly, table sorted, default, description column. @ loss this. if need see other code, please let me know.

thank in advance!!! - d

there couple overloaded setsort methods , setsortstate method in sortabledataprovider can called set this.

for sample code using setsort, see sortablecontactdataprovider source in sorting dataview example on examples page.


Comments

Popular posts from this blog

Delphi Wmi Query on a Remote Machine -