asp.net GridView排序

时间:2013-12-29 15:54:43

标签: asp.net sorting gridview

我最近一直在尝试“排序”GridView排序问题,我有点成功地做到了这一点,但并非GridView中的所有列都是“可排序的”,也就是说,即显示来自不同表的值的列。 更具体地说,假设我有两个表:列类别为Category的类别,categoryName和包含productsID,categoryID(外键),productName列的产品。

My Products.aspx看起来像:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    AllowSorting="true" DataKeyNames="productsID" SelectMethod="GridView1_GetData">
    <Columns>

      <asp:BoundField DataField="productsID" SortExpression="productsID" HeaderText="Product ID" ReadOnly="true" />

      <asp:BoundField DataField="productName" SortExpression="productName" HeaderText="Name of the product" />

      <asp:TemplateField SortExpression="Categories.categoryName" HeaderText="Name of category" >
        <ItemTemplate>
          <asp:Label ID="Label3" runat="server" Text='<%# Eval("Categories.categoryName") %>'></asp:Label>
        </ItemTemplate>
      </asp:TemplateField>
</Columns>
</asp:GridView>

和Products.aspx.cs看起来像:

DatabaseEntities db = new DatabaseEntities();

public IQueryable GridView1_GetData(string sortByExpression)
{
    return db.Products.Include("Categories").SortBy(sortByExpression).AsQueryable();
}

排序适用于父(Products)表中的productsID,productsName和categoryID列,但不适用于同一GridView中显示的子(Categories)表列中的categoryName。

请问如何解决此排序问题?

提前致谢,问候

0 个答案:

没有答案