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

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -