VB.NET中LISTVIEW排序

排序

控件:

TEXTBOX    :1个       Name:txtJobNo

BUTTON:     2个       Name:btnFilter,btnShowAll

LISTVIEW :  1个       Name:lstvwJobNo  Columns:JobNo,ContainerID,CartonID,PO,Style,Color,Size,ShipMent,Factory             Sorting:none

源代码:

Imports System.Data.SqlClient

Dim con As New SqlConnection
Dim varSQL As String
Dim r As Integer
Dim conString As String ="data source=127.0.0.1;initial catalog=mydb; uid=sa;password=123"

'定义默认排序变量
Dim mySort As String = "ASC"

'定义默认字段变量
Dim myField As String = "JOB.JOBNO"

'过滤指定条件的记录
    Private Sub btnFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFilter.Click
        Try
            Dim fJobNo As String = ""
            fJobNo = txtJobNo.Text.Trim()
            r = List_dgJobNo(fJobNo)

        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        Finally
            If con.State = ConnectionState.Open Then
                con.Close()
            End If
        End Try
    End Sub

'显示所有记录
Private Sub btnShowAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowAll.Click
        List_dgJobNo("")
End Sub

'函数功能:将读取出来的数据写入lstvwJovNo的表格中
'函数名称:List_dgJobNo,调用格式:List_dgJobNo("10022"),List_dgJobNo("")
'参    数:fJobNo,要查询的工作号JOBNO,为空时则查询所有的
'编 写 者:SD
'日    期:2005-9-23
'转载请保留此信息
Private Function List_dgJobNo(ByVal fJobNo As String) As Integer
        Try
            Cursor.Current = Cursors.WaitCursor

            lstvwJobNo.Items.Clear()

            con = New SqlConnection(conString)

            Dim cmd As SqlCommand
            Dim rd As SqlDataReader

            If fJobNo.Length > 0 Then
                varSQL = "SELECT JOB.JOBNO,CONTAINERNO,CARTONFROM,PO,STYLE,COLOR,CARTONSIZE,SHIPMENT,FACTORY FROM JOB,JOB_LINE WHERE JOB.JOBNO=JOB_LINE.JOBNO AND JOB.JOBNO LIKE '%" & fJobNo & "%' "
            Else
                varSQL = "SELECT JOB.JOBNO,CONTAINERNO,CARTONFROM,PO,STYLE,COLOR,CARTONSIZE,SHIPMENT,FACTORY FROM JOB,JOB_LINE WHERE JOB.JOBNO=JOB_LINE.JOBNO "
            End If

            varSQL = varSQL & "ORDER BY " & myField & " " & mySort & ";"

            cmd = New SqlCommand(varSQL, con)
            rd = cmd.ExecuteReader

            Dim lsv As ListViewItem

            While rd.Read
                lsv = New ListViewItem(rd("JOBNO").ToString)
                'lsv.Checked = True

                lsv.SubItems.Add(rd("ContainerNo").ToString)
                lsv.SubItems.Add(rd("CartonFrom").ToString)
                lsv.SubItems.Add(rd("PO").ToString)
                lsv.SubItems.Add(rd("Style").ToString)
                lsv.SubItems.Add(rd("Color").ToString)
                lsv.SubItems.Add(rd("CartonSize").ToString)
                lsv.SubItems.Add(rd("ShipMent").ToString)
                lsv.SubItems.Add(rd("Factory").ToString)

                lstvwJobNo.Items.Add(lsv)
            End While
            Cursor.Current = Cursors.Default
            Return List_dgJobNo = 1
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
            Return List_dgJobNo = -1
        Finally
            If con.State = ConnectionState.Open Then
                con.Close()
            End If
        End Try
End Function

'获得排序的字段,并显示排序标记
Private Sub lstvwJobNo_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lstvwJobNo.ColumnClick
        Select Case e.Column.ToString
            Case 0
                myField = "JOB.JOBNO"
            Case 1
                myField = "CONTAINERNO"
            Case 2
                myField = "CARTONFROM"
            Case 3
                myField = "PO"
            Case 4
                myField = "STYLE"
            Case 5
                myField = "COLOR"
            Case 6
                myField = "CARTONSIZE"
            Case 7
                myField = "SHIPMENT"
            Case 8
                myField = "FACTORY"
        End Select

        Dim i As Integer

        For i = 0 To 8
            lstvwJobNo.Columns(i).Text = lstvwJobNo.Columns(i).Text.Replace(" ▼", "").Replace(" ▲", "")
        Next

        If mySort = "ASC" Then
            lstvwJobNo.Columns(e.Column.ToString).Text = lstvwJobNo.Columns(e.Column.ToString).Text & " ▼"
            mySort = "DESC"
        Else
            mySort = "ASC"
            lstvwJobNo.Columns(e.Column.ToString).Text = lstvwJobNo.Columns(e.Column.ToString).Text & " ▲"
        End If

        Dim fJobNo As String = ""
        fJobNo = txtJobNo.Text.Trim()
        r = List_dgJobNo(fJobNo)
        lstvwJobNo.Refresh()

End Sub

 

时间: 2024-10-07 13:04:47

VB.NET中LISTVIEW排序的相关文章

vb.net中listview控件显示

问题描述 vb.net中listview控件显示ListView1.Columns.Add("Title")程序启动后,没有显示这列??? 解决方案 解决方案二:要先設置View屬性listView1.View=View.Details;解决方案三:listView1.View=View.Details

vb.net 中listview 数据复制

问题描述 不知道怎么插图片大家听我描述吧有两个form,frm1和frm2,frm1中有一个listview1和一个button1:frm2中有一个listview2:初始只有frm1现在listview1中选择几行数据,点button1后,frm2出现并且所选的数据显示在listview2中,希望能给些帮助谢谢大家 解决方案 解决方案二:在保证两个listview有相同结构的情况下:PublicClassForm1PrivateSubButton1_Click(ByValsenderAsSys

listview控件的拖动排序问题,怎么把listview排序的顺序存储在系统注册表中?

问题描述 listview控件的拖动排序问题,怎么把listview排序的顺序存储在系统注册表中? listview控件的拖动排序问题,怎么把listview排序的顺序存储在系统注册表中? 解决方案 http://www.cnblogs.com/lmcblog/archive/2012/07/17/2594989.html 解决方案二: ListView 排序问题listview的排序问题ListView排序问题

VB 6.0中ListView的图标和文字的字体怎么单独设置?

问题描述 VB 6.0中ListView的图标和文字的字体怎么单独设置? VB 6.0中ListView的图标和文字的字体怎么单独设置?我想让打开过的图标放在开头加粗,怎么做? 解决方案 字体用font属性设置,图标用listitem.smallicon/largeicon设置

C# 中 LISTVIEW 增加删除记录 排序 引用等实例用法

C# 中 LISTVIEW 增加删除记录 排序 引用等实例用法 ,有需要的朋友可以试一下. //增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Items[0].Caption:='id'; ListView1.Columns.Items[1].Caption:='ty

在VB.NET中实现拖放操作

第一次在csdn上发文章,希望大家帮忙使劲顶,鼓励一下新手,谢谢 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchImpDragDrop.asp 在VB.NET中实现拖放操作 Implementing Drag and Drop in Visual Basic .NET Steve Hoag Visual Basic .NET Team Microsoft Corpor

visual studio 2005-vb.net程序即vs2005中ListView没有Remove,如何来实现删除被选中的一行数据?

问题描述 vb.net程序即vs2005中ListView没有Remove,如何来实现删除被选中的一行数据? 找了写资料,没有关于vb.net的Listview删除行的操作,哪位大拿指点指点... vb.net程序提示"Remove"不是System.Windows.Forms.ListView的成员 解决方案 ListView.Items.Remove 解决方案二: Items要是带参数的话(定位到哪一行要进行删除),就会提示"Remove"不是System.Wi

Delphi7中Listview的常用功能汇总_Delphi

有些时候我们在使用Delphi7的Listview过程中总是要改一些默认的设置,现在把它们集中起来汇总如下. MultiSelect := True;   使Listview可以同时选择多行 GridLines := True;     使Listview显示格线 ViewStyle := vsReport; 显示数据项的详细列表 HideSelection := True;  使listview失去焦点时,选中行不高亮 //设置颜色 procedure TForm1.ListView1Cust

在vb.net中数据源中添加数据库后怎么可以写select语句

问题描述 在vs2012中的vb.net中数据源中添加数据库后应该怎么样做才能在代码中select语句 解决方案 解决方案二:为什么要在代码中写select如果要筛选为什么不用view.活在在datatable上用select?解决方案三:view怎么用?解决方案四:dimtableasdatatabledimvueasnewdataview(table)vue.sort="xxx,xxx,xxx"'排序vue.sort="xxxdesc"vue.rowFilter