.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
datagrid的頁內查找函數

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

在自己學著開發的過程中,寫了一些可重用的代碼,願與大家分享一下.
因為datagrid沒有像delphi中的網格的網格內數據的查找功能,于是自己動手寫了一個:


'
Public Function findto(ByVal mDataGrid As DataGrid, ByVal nowindex As Integer, ByVal maxindex As Integer, ByVal caps As Boolean, ByVal updown As Boolean, ByVal mFieldName As Integer, ByVal mFieldValue As String) As Integer

        Dim rowIndex As Integer = -1
        Dim regstring As String
        regstring = mFieldValue.Replace("\", "\\")
        Dim dgrow As Integer
        Try
            Dim rx As System.Text.RegularExpressions.Regex
            If caps Then
                rx = New System.Text.RegularExpressions.Regex(regstring, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
            Else
                rx = New System.Text.RegularExpressions.Regex(regstring)
            End If
            If updown Then
                For dgrow = nowindex - 1 To 0 Step -1
                    If rx.IsMatch(mDataGrid.Item(dgrow, mFieldName).ToString) Then
                        rowIndex = dgrow
                        If rowIndex <= nowindex Then
                            mDataGrid.CurrentRowIndex = rowIndex
                        Else
                            rowIndex = -1
                        End If
                        Exit For
                    End If
                Next
            Else
                For dgrow = nowindex + 1 To maxindex
                    If rx.IsMatch(mDataGrid.Item(dgrow, mFieldName).ToString) Then
                        rowIndex = dgrow
                        If rowIndex >= nowindex Then
                            mDataGrid.CurrentRowIndex = rowIndex
                        Else
                            rowIndex = -1
                        End If
                        Exit For
                    End If
                Next
            End If
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
        Return rowIndex

    End Function

'使用時
        Dim findindex As Integer '找到的行
        Dim currow As Integer
        Dim curcol As Integer
        curcol = sFieldName.SelectedIndex
        If curcol = 0 Then Exit Sub
        currow = DataGrid1.CurrentRowIndex '
        DataGrid1.UnSelect(currow)
       '功能說明:  (選中該行)
       'findto(網格的名稱,當前行號,數據記錄數,區分大小寫,向上or向下查找方向,列號,查詢值)
        findindex = findto(DataGrid1, currow, ds_rec.Tables("rec").Rows.Count - 1, cap, searup, curcol, sFieldValue.Text.ToString)
        If findindex <> -1 Then
            DataGrid1.Select(findindex)
        Else
            MsgBox("沒有找到匹配的項目!", MsgBoxStyle.Information, "查找結果")
            DataGrid1.CurrentRowIndex = currow
            DataGrid1.Select(currow)
        End If





相关文章

相关软件