排序的事件内在ASP.Net 使用VB

0

的问题

我有一个问题,关于排序在。 我不是专家vb.net 但我必须要解决这个问题。 我想解释一下我的数据是进来。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
//also there is some logic in there but I think that part of the code will not effect
  loadgrid()
End Sub

loadgrid() 将载于所查询的数据通过一些步骤,

//这种功能使用一些逻辑

Private Sub loadgrid() Handles B_SEARCH.Click, chkLegacy.CheckedChanged, gvEmployer.PageIndexChanged
        GridDataLoader() 
    End Sub

eEmployer 将获得的所有数据的查询内

Public Sub GridDataLoader()
       //some code was there because of searching
        Dim dataTable = Employer.getEmployers(eEmployer, chkLegacy.Checked)
        gvEmployer.DataBind()
    End Sub
Public Function GetEmployers(ByVal eEmployer As tblEmployer, ByVal All As Boolean, Optional ByVal sortExpression As String = Nothing) As DataTable
        Dim query = ""
        query =
                "select employer.EmployerID as EmployerId,
                employer.Employer_Name as EmployerName,
           // the query is so large so i delete all for better understanding
                on (employer.Modified_by=tum.UserID)
                where employer.LegacyID IS NULL  and address.ValidityTo is null"
        'End If

        Dim params = ""
        If All = False Then
            query += " AND employer.ValidityTo is null"
        End If

        If (params.Trim() IsNot "") Then
            query = query & params
        End If
        data.setSQLCommand(query, CommandType.Text)
        Return data.Filldata
    End Function

最后,数据是返回到网格图。 但是我的问题是我不理解我如何可以实现的排序的事情。 我改变了一些东西被视 AllowSorting="true" SortExpression="EmployerName" 我不知道我应该怎么做进一步。 我是以下这 Articel

asp.net gridview vb.net
2021-11-20 04:46:50
1

最好的答案

1

嗯,在基本设置可以是这样的:

总是有不IsPost回存根在所有的你的网页。

因此,我有这个标记:

(I使用的向导-建立数据的来源)。 然后我吹出的数据来源设置和删除的DataSourc1从该网页。

因此,我有这个标记:

   <div style="width:40%;padding:25px">
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="ID" CssClass="table table-hover" AllowSorting="True" >
            <Columns>
                <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
                <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
                <asp:BoundField DataField="HotelName" HeaderText="HotelName" SortExpression="HotelName" />
                <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
                <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
            </Columns>
        </asp:GridView>
        <br />
    </div>

和我的代码载是这样的: (注意如何我LoadGrid查具有一种"默认的"排序

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        LoadGrid
    End If
End Sub

Sub LoadGrid(Optional strSort = "HotelName")

    GridView1.DataSource = MyRst("SELECT * FROM tblHotels Order by " & strSort)
    GridView1.DataBind()

End Sub

和我的种事件存根是这样的:

Protected Sub GridView1_Sorting(sender As Object, e As GridViewSortEventArgs) Handles GridView1.Sorting

    LoadGrid(e.SortExpression)

End Sub

结果是这样的:

enter image description here

现在当然我总是厌倦了具有类型连接和代码,以创建一个记录(表),因此我们这一全球性辅助程序:

Public Function MyRst(strSQL As String) As DataTable

    Dim rstData As New DataTable
    Using conn As New SqlConnection(My.Settings.TEST4)
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            rstData.Load(cmdSQL.ExecuteReader)
        End Using
    End Using

    Return rstData
End Function

编辑:

所以其他的问题是什么有关种委员会和递减。

嗯,我们可以添加如果你击的标题再次,我们反对排序。

这需要更多的代码,但是这会的工作:

Sub LoadGrid(Optional strSort As String = "HotelName",
             Optional SortASC As Boolean = True)

    Dim rstTable As DataTable
    rstTable = MyRst("SELECT * FROM tblHotels")
    rstTable.DefaultView.Sort = strSort & " " & If(SortASC, "ASC", "DESC")
    GridView1.DataSource = rstTable
    GridView1.DataBind()

    ViewState("Sort") = strSort
    ViewState("SortASC") = SortASC
End Sub

Protected Sub GridView1_Sorting(sender As Object, e As GridViewSortEventArgs) Handles GridView1.Sorting

    If ViewState("Sort") = e.SortExpression Then
        ViewState("SortASC") = Not ViewState("SortASC")
    Else
        ViewState("SortASC") = True
    End If
    LoadGrid(e.SortExpression, ViewState("SortASC"))

End Sub
2021-11-21 08:56:42

我还没完成但我理解这是解决方案。
Julker Nien Akib

@阿尔伯特-d-kallal谢谢你的好的代码,我很高兴我完成我的工作上的时间。
Julker Nien Akib

你好,兄弟,我有一个问题。 从这一解决方案,这只能做Desc或Asc。 会是什么样的逻辑背后的这个吗?
Julker Nien Akib

Ok,那就是更复杂的-我会因此改变的事情一点。 但是见我的编辑-我已经发布你怎么可以点击标题-如果你再次点击,它逆转的排序,列。
Albert D. Kallal

谢谢你的回复,但是我解决了它就在你的编辑,但是这对我来说意味着很多,并很高兴回答。
Julker Nien Akib

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................