2016-12-09 78 views
0

我已經在我的網站使用的母版頁創建Web表單application.And我已創建GridView和我要排序的columns.My gridview的設計如下:如何排序在ASP.net Web應用程序在GridView列

<div id="GridPopUp" runat="server"> 
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns = "false" DataKeyNames="sno" CssClass = "grid" > 
    <Columns> 
     <asp:TemplateField ItemStyle-Width="200px"> 
      <ItemTemplate> 
       <asp:CheckBox ID="cbCheck" runat="server"/> 
      </ItemTemplate> 
      </asp:TemplateField> 

     <asp:BoundField ItemStyle-Width="200px" DataField="sno" HeaderText="sno" /> 
     <asp:BoundField ItemStyle-Width="200px" DataField="itemcode" HeaderText="ItemCode" /> 
     <asp:BoundField ItemStyle-Width="200px" IDataField="itemname" HeaderText="ItemName" /> 
     <asp:BoundField ItemStyle-Width="200px" DataField="unit" HeaderText="Unit" /> 
     <asp:BoundField ItemStyle-Width="200px" DataField="price" HeaderText="Price" /> 
     <asp:BoundField ItemStyle-Width="200px" DataField="qty" HeaderText="Qty" /> 
     <asp:TemplateField ItemStyle-Width="200px" > 
      <ItemTemplate> 
       <asp:LinkButton ID="lnkSelect" runat="server" Text="Select" CommandName = "Select" OnClientClick = "return GetSelectedRow(this)" /> 
      </ItemTemplate> 
     </asp:TemplateField> 

    </Columns> 
</asp:GridView> 
</div> 
+0

這是否幫助你有幫助? http://stackoverflow.com/a/10498012/1166719 –

+0

只是在gridview上啓用排序 – fnostro

+0

我已經做了alloworting = true;但它顯示錯誤消息 – Ram

回答

0

我沒有在GridView的排序列與線程可用的幫助here

我的項目編碼如下,

<asp:GridView ID="GvSalesItems" runat="server" AutoGenerateColumns="false" DataKeyNames="sno" CellPadding="4" ForeColor="#333333" GridLines="None" PageSize="10" AllowPaging="True" AllowSorting="True" onsorting="GridView1_Sorting" EnableViewState="true"> 
      <Columns> 
     <asp:TemplateField> 

    <ItemTemplate> 
     <asp:CheckBox ID="chk" runat="server" /> 
    </ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField> 
      <ItemTemplate> 
       <asp:LinkButton ID="lnkSelect" runat="server" Text="Select" CommandName = "Select" OnClientClick = "return GetSelectedRow(this)" /> 
      </ItemTemplate> 
     </asp:TemplateField> 

       <asp:BoundField DataField="sno" HeaderText="Sno" SortExpression="sno" /> 
      <asp:BoundField DataField="itemcode" HeaderText="Item Code" SortExpression="itemcode" /> 
      <asp:BoundField DataField="itemname" HeaderText="Item Name" SortExpression="itemname" /> 
      <asp:BoundField DataField="unit" HeaderText="Unit" SortExpression="unit" /> 
      <asp:BoundField DataField="price" HeaderText="Price" SortExpression="price" /> 
      <asp:BoundField DataField="default_qty" HeaderText="Qty" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" /> 
      <asp:BoundField DataField="price" HeaderText="Amount" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" /> 


     </Columns> 
     <EditRowStyle BackColor="#999999" /> 
     <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <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" /> 
     </asp:GridView> 

代碼背後是,

public void GetSalesItems() //Binding GridView 
     { 
       DataSet ds1 = new DataSet(); 
       D.id = 2;//SELECT * from DBTABLE 
       ds1 = C.DATA1(D); 
       GvSalesItems.DataSource = ds1.Tables[0]; 
       GvSalesItems.DataBind(); 

     } 

值編碼爲排序使用ASP.net的buildin排序功能GridView中,

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) 
      { 

       DataSet ds = new DataSet(); 
       B.id = 2; 
       ds = A.DATA(B); 
       GvUser.DataSource = ds.Tables[0]; 
       GvUser.DataBind(); 

       if (ds.Tables[0] != null) 
       { 
        DataView dataView = new DataView(ds.Tables[0]); 
        dataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection); 

        GvUser.DataSource = dataView; 
        GvUser.DataBind(); 
       } 
      } 

      private string GridViewSortDirection 
      { 
       get { return ViewState["SortDirection"] as string ?? "DESC"; } 
       set { ViewState["SortDirection"] = value; } 
      } 

      private string ConvertSortDirectionToSql(SortDirection sortDirection) 
      { 
       switch (GridViewSortDirection) 
       { 
        case "ASC": 
         GridViewSortDirection = "DESC"; 
         break; 

        case "DESC": 
         GridViewSortDirection = "ASC"; 
         break; 
       } 

       return GridViewSortDirection; 
      } 

它的工作原理perfectly.I希望這將是,如果有人need.Thank你