2011-07-30 64 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

您的代碼滿足在列中添加圖像的條件。感謝那。但排序似乎沒有工作正常。 –