การเรียงลำดับเหตุการณ์ใน GridView ใน ASP.Net ใช้ VB

0

คำถาม

ฉันกำลังจะมีปัญหาเกี่ยวกับก็อยู่ใน Gridview. ฉันไม่ใช่ผู้เชี่ยวชาญด้านใน vb.net แต่ฉันต้องแก้ปัญหานี้ ฉันอยากจะอธิบายเรื่องข้อมูลของฉันกำลังอยู่ใน GridView.

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 จะได้ข้อมูลทั้งหมดสำหรับการค้นหาสำหรับ gridView

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 กลับขั้นในทั้งหมดของคุณหน้าเว็บ.

ดังนั้นผมมีภาษามาร์คอัป language:

(ฉันเคยใช้ตัวช่วยนี้-สร้างข้อมูลแหล่งข่าว). ฉันก็ระเบิดออกแหล่งข้อมูลการตั้งค่าและลบ DataSourc1 อกจากหน้าเว็บ.

ดังนั้นผมมีภาษามาร์คอัป language:

   <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

ตอนนี้แน่นอนผมเสมอเหนื่อยกับเรื่องการที่จะต้องประเภทการเชื่อมต่อและรหัสเพื่อสร้างบันทึกตั้ง(DataTable)ดังนั้นฉันต้องโกลบอลช่วยทำงานประจำวัน:

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

แก้ไข:

ดังนั้นเพิ่มเติมคำถามคืออะไรเรื่องแบบ CODE และ DESC.

งั้นเราสามารถเพิ่มถ้าเธอคลิกที่มุ่งหน้าไปอีกครั้งเราย้อนกลับนั้น

นี่มันใช้เวลาอีกหน่อยได้มัยกลับมารหัสแต่มันจะทำงาน:

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 หรือ Code. อะไรจะเป็นคนตรรกะอยู่เบื้องหลังหรอ?
Julker Nien Akib

โอเคนั่นมันซับซ้อนมากขึ้น-ผมจะทำให้เปลี่ยนแปลงสิ่งที่เกิดขึ้นนิดหน่อย แต่เห็นของฉันแก้ไข-ฉันต้องโพสยังไงที่เราจะสามารถคลิกที่มุ่งหน้าไปถ้าคุณคลิกอีกครั้งมัน reverses ระโยชน์ของบริษัสำหรับคอลลัมน์นี้
Albert D. Kallal

ขอบคุณสำหรับของคุณตอบกลับไปยังผู้รับจดหแต่ผมแก้ไขมันก่อนคุณจะแก้ไขแต่นี่มันมีความหมายกับผมมากและดีใจที่นั่นแจ้งว่า.
Julker Nien Akib

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่