c# - DataView losing Sort order -


i having bit of issue dataview.sort. when binded pageddatasource lose sort order?

by default data sorted date in descending order.

here code

protected void page_load(object sender, eventargs e) {    if (!ispostback)   {     viewstate["column"] = "orderdate";     viewstate["order"] = "asc";      populateproductclass();     populateproduct();    }   populateorderlist();  }  private void populateorderlist() {   datetime d;   datetime d2;    customerinfo ki = customerinfoprovider.getcustomerinfobyuserid(cooneenhelper.getuserimpersonisationid());   int nkustomerid = ki.customerid;   datatable dts = new datatable();   dts.columns.add("orderdate", typeof(string));   dts.columns.add("ordernumber", typeof(string));   dts.columns.add("orderitemskuname", typeof(string));   dts.columns.add("skunumber", typeof(string));   dts.columns.add("orderitemstatus", typeof(string));   dts.columns.add("orderitemunitcount", typeof(string));    querydataparameters qdp = new querydataparameters();   qdp.add("@customerid", nkustomerid);    if (drpproductclass.hascontrols())   {     if (drpproductclass.selectedvalue.tostring() != "0" || drpproductclass.selectedvalue.tostring() == null) { qdp.add("@orderitemwrclass", drpproductclass.selecteditem.tostring()); }     if (drpproduct.selectedvalue.tostring() != "0") { qdp.add("@orderitemskuid", drpproduct.selectedvalue.tostring()); }   }               if (txtstartdate.text != "") { d = datetime.parse(txtstartdate.text); qdp.add("@orderitemdatefrom", d.tostring("yyyy-mm-dd")); }   if (txtenddate.text != "") { d2 = datetime.parse(txtenddate.text); qdp.add("@orderitemdateto", d2.tostring("yyyy-mm-dd")); }    dataset ds = gc.executequery("cn_getorderitembycustid", qdp, querytypeenum.storedprocedure, true);   foreach (datarow dr in ds.tables[0].rows)   {     datarow drnew = dts.newrow();     drnew["orderdate"] = validationhelper.getdatetime(dr["orderdate"], datetime.now).toshortdatestring();     drnew["ordernumber"] = dr["ordernumber"].tostring();     drnew["orderitemskuname"] = dr["orderitemskuname"].tostring();     drnew["skunumber"] = dr["skunumber"].tostring();     drnew["orderitemstatus"] = dr["orderitemstatus"].tostring();     drnew["orderitemunitcount"] = dr["orderitemunitcount"].tostring();           dts.rows.add(drnew);   }    //clear textbox   litresults.text = string.empty;    if (dts.rows.count == 1)     litresults.text = "" + dts.rows.count.tostring() + " order items";   else     litresults.text = "" + dts.rows.count.tostring() + " order items";     pageddatasource pds = new pageddatasource();   dataview view = dts.defaultview;   view.sort = viewstate["column"].tostring() + " " + viewstate["order"].tostring();    pds.datasource = view;     //allow paging, set page size, , current page   pds.allowpaging = true;   pds.pagesize = perpage;   pds.currentpageindex = currentpage;    //show # of current page in label   if (pds.pagecount > 1) litresults.text += " - showing page " + (currentpage + 1).tostring() + " of " + pds.pagecount.tostring();    //disable prev/next buttons on first/last pages   btnprev.enabled = !pds.isfirstpage;   btnnext.enabled = !pds.islastpage;    rprorders.visible = true;    rprorders.datasource = pds;   rprorders.databind();  } 

when data returned database datatable dts sorting fine. when sorted using dataview seems lose sorting order?

pageddatasource pds = new pageddatasource(); dataview view = dts.defaultview; view.sort = viewstate["column"].tostring() + " " +     viewstate["order"].tostring(); //sorting order lost in view pds.datasource = view; 

i not sure how?


Comments