2011-07-30 34 views
0

我有一个需求,我需要在我的gridview的列进行排序。但问题是,我需要在gridview列的下方放置一行,这些列会有升序和降序排列的图像。点击这些图像时,应该对所选列进行排序。基于gridview双头的列排序

请指导我!

让我知道如果您有任何疑问/疑惑

谢谢!

+0

任何意见??? –

回答

1

我的决定:

<asp:GridView runat="server" ID="GridViewTest" DataSourceID="CustomersSource" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:TemplateField>   
      <HeaderTemplate> 
       <asp:Panel runat="server" BorderWidth="1"> 
        <asp:Label runat="server" Text='column {CustomerID}'></asp:Label> 
       </asp:Panel> 
       <asp:Panel runat="server"> 
        <asp:ImageButton runat="server" AlternateText="asc" CommandName="CustomerID" CommandArgument="<%# CommandArgumentAsc %>" OnClick="ImageButton_Click" /> 
        <asp:ImageButton runat="server" AlternateText="desc" CommandName="CustomerID" CommandArgument="<%# CommandArgumentDesc %>" OnClick="ImageButton_Click" /> 
       </asp:Panel> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <%# Eval("CustomerID")%> 
      </ItemTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField>   
      <HeaderTemplate> 
       <asp:Panel runat="server" BorderWidth="1"> 
        <asp:Label runat="server" Text='column {CompanyName}'></asp:Label> 
       </asp:Panel> 
       <asp:Panel runat="server"> 
        <asp:ImageButton runat="server" AlternateText="asc" CommandName="CompanyName" CommandArgument="<%# CommandArgumentAsc %>" OnClick="ImageButton_Click" /> 
        <asp:ImageButton runat="server" AlternateText="desc" CommandName="CompanyName" CommandArgument="<%# CommandArgumentDesc %>" OnClick="ImageButton_Click" /> 
       </asp:Panel> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <%# Eval("CompanyName")%> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

<asp:sqldatasource id="CustomersSource" 
    selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" 
    connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
    runat="server"/> 

后面的代码:

protected const string CommandArgumentAsc = "asc"; 
    protected const string CommandArgumentDesc = "desc"; 

    protected void ImageButton_Click(object sender, ImageClickEventArgs e) 
    { 
    var imageButton = sender as ImageButton; 

    if (imageButton != null) 
    { 
     if (imageButton.CommandArgument == CommandArgumentAsc) 
     { 
     GridViewTest.Sort(imageButton.CommandName, SortDirection.Ascending); 
     } 

     if (imageButton.CommandArgument == CommandArgumentDesc) 
     { 
     GridViewTest.Sort(imageButton.CommandName, SortDirection.Descending); 
     } 
    } 
    } 
+0

感谢您的输入..让我试试 –

+0

好的。请提问。 – vladimir77

+0

您的代码满足在列中添加图像的条件。感谢那。但排序似乎没有工作正常。 –