2013-02-24 161 views
2

我試圖通過優化分頁實現排序,但是當我嘗試排序時,沒有任何反應。排序標題的設計更改,就是這樣。Gridview排序不起作用

的GridView:

<div align="center"> 

    <asp:ObjectDataSource ID="odsSupplier" runat="server" SelectMethod="GetSuppliers" 
     TypeName="Supplier" EnablePaging="True" MaximumRowsParameterName="PageSize" SelectCountMethod="GetRowsCount" StartRowIndexParameterName="StartRow" SortParameterName="sortBy"> 
    </asp:ObjectDataSource> 


    <asp:GridView ID="supplierGridView" runat="server" AllowSorting="True" 
     CellPadding="4" DataSourceID="odsSupplier" 
     ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="15" 
     Width="300px"> 

     <Columns> 
      <asp:ButtonField ButtonType="button" CommandName="Ed" HeaderText="Edit" 
       Text="Edit"> 
       <ControlStyle Width="75px" /> 
       <HeaderStyle HorizontalAlign="Center" Width="75px" /> 
       <ItemStyle Width="75px" HorizontalAlign="Center" /> 
      </asp:ButtonField> 

      <asp:ButtonField ButtonType="button" CommandName="Del" HeaderText="Delete" 
       Text="Delete"> 
       <ControlStyle Width="75px" /> 
       <HeaderStyle HorizontalAlign="Center" Width="75px" /> 
       <ItemStyle Width="75px" HorizontalAlign="Center" /> 
      </asp:ButtonField> 
     </Columns> 

     <EditRowStyle BackColor="#999999" /> 
     <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <PagerSettings Mode="NumericFirstLast" /> 
     <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
     <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
     <SortedAscendingCellStyle BackColor="#E9E7E2" /> 
     <SortedAscendingHeaderStyle BackColor="#506C8C" /> 
     <SortedDescendingCellStyle BackColor="#FFFDF8" /> 
     <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 
     <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
    </asp:GridView> 
</div> 

供應者類

public DataView GetSuppliers(int StartRow, int PageSize) 
{ 
    return GetData(StartRow, PageSize, "EquipmentSupplierID"); 
} 

public DataView GetSuppliers(int StartRow, int PageSize, string sortBy) 
{ 
    return GetData(StartRow, PageSize, sortBy); 
} 

public DataView GetSuppliers(string sortBy) 
{ 
    return GetData(int.MaxValue, 0, sortBy); 
} 

private DataView GetData(int StartRow, int PageSize, string sortBy) 
{ 
    dbconn db = new dbconn(); 
    return db.getSupplierData(StartRow, PageSize, sortBy).DefaultView; 
} 

public int GetRowsCount() 
{ 
    dbconn db = new dbconn(); 
    return db.getSupplierCount(); 
} 

dbconn類

public int getSupplierCount() 
{ 
    open(); 
    setQuery("SELECT COUNT(*) AS Count FROM equipmentsupplier"); 
    MySqlDataReader msdr = executeReader(); 
    msdr.Read(); 
    int count = int.Parse(msdr["Count"].ToString()); 
    close(); 
    return count; 
} 

public DataTable getSupplierData(int StartRow, int PageSize, string sortBy) 
{ 
    open(); 
    setQuery("SELECT * from equipmentsupplier ORDER BY ?SORT LIMIT ?StartRow, ?Total;"); 
    setParameter("StartRow", StartRow); 
    setParameter("Total", PageSize); 
    setParameter("SORT", sortBy); 

    DataTable dt = new DataTable(); 
    dt.Load(executeReader()); 
    return dt; 
} 

當我梳理它,但它只是沒有顯示上的查詢返回正確的數據我網格視圖。

+0

您是否在GridView之外使用UpdatePanel? – 2013-02-24 10:35:48

+0

nope,我沒有使用更新面板。當我點擊標題時,該列突出顯示,但gridview上顯示的數據未被排序 – user2103743 2013-03-25 02:26:27

回答

0

@ user2103743將所有buttonfields更改爲templatefield