2013-02-24 4 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> 

Class Поставщик

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

Вы используете UpdatePanel вне своего gridview? –

+0

Нет, я не использую панель обновления. Когда я нажимаю на заголовки, колонка выделяется, но данные, показанные в gridview, не сортируются – user2103743

ответ

0

@ user2103743 Изменить все кнопочные поля на templatefield