无法使用vb而不是C#进行Descending排序

时间:2017-10-09 14:37:38

标签: vb.net sorting gridview

我正在尝试对GridView进行排序,但在尝试对已经排序的同一列进行排序时遇到了问题。我查看过以前的线程,但我也很难找到使用VB而不是C#的解决方案。这是一个我从以前的员工那里得到的项目,我也是编码的新手,所以请原谅我提出的任何愚蠢的问题或凌乱的代码。

代码如下:

Protected Sub gvOpenOrders_Sorting(sender As Object, e As GridViewSortEventArgs) Handles gvOpenOrders.Sorting

    lblSortDir.Text = "Sort Direction = " + e.SortDirection.ToString()
    lblSortExp.Text = "Sort Expression = " + e.SortExpression

    Dim sortingDirection As String = String.Empty
    If dir = SortDirection.Ascending Then
        dir = SortDirection.Descending
        sortingDirection = "DESC"
    Else
        dir = SortDirection.Ascending
        sortingDirection = "ASC"
    End If
    cmd.CommandText = "usp_OrderSummaryListSort"
    cmd.CommandType = CommandType.StoredProcedure
    da.Fill(dt)
    con.Close()
    Dim sortedView = New DataView(dt)
    sortedView.Sort = Convert.ToString(e.SortExpression) & " " & sortingDirection
    gvOpenOrders.DataSource = sortedView
    gvOpenOrders.DataBind()
    dt.Clear()
End Sub

Public Property dir() As SortDirection
    Get
        If ViewState("dirState") Is Nothing Then
            ViewState("dirState") = SortDirection.Ascending
        End If
        Return DirectCast(ViewState("dirState"), SortDirection)
    End Get
    Set(ByVal value As SortDirection)
        ViewState("dirState") = value
    End Set
End Property

HTML就是:

<div id="divGridView">
    <asp:GridView ID="gvOpenOrders" runat="server" AutoGenerateColumns="False" Width="100%" CellPadding="4" ForeColor="#333333" GridLines="None" DataKeyNames="PurchaseOrderID"
        AllowPaging="True" AllowSorting="True" OnSorting="gvOpenOrders_Sorting" EnableViewState="true" OnPageIndexChanging="OnPageIndexChanging" PageSize="15" ViewStateMode="Enabled">

        <AlternatingRowStyle BackColor="White" />
        <Columns>
            <asp:TemplateField HeaderText="Is Received" SortExpression="IsReceived">
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" Checked='<%# Bind("IsReceived") %>' Enabled='<%# Eval("IsReceived") = False %>' />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="OrderDate" HeaderText="Order Date" SortExpression="OrderDate" DataFormatString="{0: dd/MM/yyyy}" HtmlEncode="false"/>
            <asp:BoundField DataField="Employee" HeaderText="Employee" SortExpression="Employee" />
            <asp:BoundField DataField="PurchaseOrderID" HeaderText="Order Number" SortExpression="PurchaseOrderID" InsertVisible="False" ReadOnly="True" />
            <asp:BoundField DataField="PartNumber" HeaderText="Part Number" SortExpression="PartNumber" />
            <asp:BoundField DataField="Notes" HeaderText="Description" SortExpression="Notes" ItemStyle-Width="400px"/>
            <asp:BoundField DataField="SupplierName" HeaderText="Supplier" SortExpression="SupplierName" />
            <asp:BoundField DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" />
            <asp:BoundField DataField="ReceivedDate" HeaderText="Received Date" SortExpression="ReceivedDate" ItemStyle-Width="100px"/>
            <asp:BoundField DataField="ReceivedEmployeeID" HeaderText="Receieved By" SortExpression ="ReceivedEmployeeID" />
        </Columns>
        <EditRowStyle BackColor="#2461BF" />
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="False" ForeColor="White" />
        <PagerSettings FirstPageText="1" LastPageText="Last Page" NextPageText="&gt;" PreviousPageText="&lt;" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
        <RowStyle BackColor="#EFF3FB" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <SortedAscendingCellStyle BackColor="#F5F7FB" />
        <SortedAscendingHeaderStyle BackColor="#6D95E1" />
        <SortedDescendingCellStyle BackColor="#E9EBEF" />
        <SortedDescendingHeaderStyle BackColor="#4870BE" />
    </asp:GridView>
</div>

提前致谢并期待将其排序。原谅双关语。

0 个答案:

没有答案