Cara Mengurutkan kolom GridView di Aplikasi Web ASP.net

Saya telah membuat formulir web menggunakan halaman master di aplikasi Web saya. Dan saya telah membuat GridView dan saya ingin mengurutkan kolom. Desain gridview saya sebagai berikut:

<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>

person Ram    schedule 09.12.2016    source sumber
comment
Apakah ini membantu Anda? stackoverflow.com/a/10498012/1166719   -  person Pierre-Loup Pagniez    schedule 09.12.2016
comment
cukup aktifkan penyortiran pada tampilan grid   -  person fnostro    schedule 09.12.2016
comment
Saya sudah melakukan itu letsorting=true; tapi itu menunjukkan pesan kesalahan   -  person Ram    schedule 09.12.2016
comment
Saya sudah melakukan itu AllowSorting=True. tetapi itu menunjukkan pesan kesalahan The GridView 'GridView1' memicu acara Penyortiran yang tidak ditangani. Saya mendefinisikan SortExpression=sno dan seterusnya.   -  person Ram    schedule 09.12.2016
comment
Terima kasih atas balasan Anda Pierre-Loup Pagniez dan fnostro. utas yang Anda sarankan berfungsi untuk saya. Saya ingin melakukan ini tanpa postback dengan bantuan javascript dan jquerry   -  person Ram    schedule 09.12.2016
comment
Mengurutkan Gridview menggunakan fitur pengurutan bawaannya memerlukan postback setiap kali header kolom diklik. Yang mengatakan, Gridview merender tabel dan ada kode pihak ketiga jquery/js yang dapat menangani sisi klien penyortiran dengan penambahan html dan atau atribut yang tepat. Tapi saya akan menyarankan untuk tidak melakukannya.   -  person fnostro    schedule 10.12.2016
comment
Saya mengurutkan kolom di Gridview seperti yang ditunjukkan di bawah ini. Sekarang saya menggunakan UpdatePanel untuk Gridview, tetapi ini memicu postback saat mengurutkan. Bagaimana saya bisa melakukan pengurutan di sebagian postback.@fnostro   -  person Ram    schedule 20.12.2016


Jawaban (1)


Saya melakukan pengurutan kolom di Gridview dengan bantuan utas yang tersedia di sini

pengkodean proyek saya adalah sebagai berikut,

<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>

Kode di belakangnya adalah,

 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();

        }

Pengkodean untuk Menyortir GridView menggunakan fungsi penyortiran ASP.net Buildin,

 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;
            }

Ini berfungsi dengan sempurna. Saya harap dapat membantu jika ada yang membutuhkan. Terima kasih

person Ram    schedule 16.12.2016