如何让DataGrid中的某一行显示在视窗的第一行
DataGrid有很多行数据,要几个视窗才能放的下,我希望在我输入行号后,该行数据显示在视窗的第一行。
功能有点类似Scroll,但Scroll只能是相对的行数,而不是绝对行数。
[解决办法]
用BookMark属性
[解决办法]
'*******************************************************************
'PURPOSE: 在dgdNodeDisable中检索第一行符合输入的记录
'SUPPOSE:
'EFFECT:
'INPUTS:
'RETURNS: String(a Empty String Or aSafe Err Message String)
'*******************************************************************
Public Function SrchFirstNodeDisable_RationRule_ClothModal_Node() As String
On Error GoTo ErrTrap
SrchFirstNodeDisable_RationRule_ClothModal_Node = " "
If m_rsNodeDisable.State = adStateClosed Then
Exit Function
End If
If m_rsNodeDisable.RecordCount > 0 Then
m_rsNodeDisable.MoveFirst
Else
Exit Function
End If
Dim i As Long
'先删除所有表格标签-------------
If MyApp.dfVntToLng(m_frmRule.dgdNodeDisable.SelBookmarks.Count) > 0 Then
For i = 0 To m_frmRule.dgdNodeDisable.SelBookmarks.Count - 1
Call m_frmRule.dgdNodeDisable.SelBookmarks.Remove(i)
DoEvents
Next i
End If
'找到符合要求的行,设定标签
With m_frmRule.dgdNodeDisable
Set .DataSource = Nothing '界面性能优化:操作记录集时暂时断开绑定
Set m_frmRule.lblDisableID.DataSource = Nothing '界面性能优化:操作记录集时暂时断开绑定
Do While Not m_rsNodeDisable.EOF
If Left(MyApp.dfVntToTrimStr(m_rsNodeDisable!NodeName), MyApp.dfLen(MyApp.dfVntToTrimStr(m_frmRule.txtNodeDisable.Text))) = MyApp.dfVntToTrimStr(m_frmRule.txtNodeDisable.Text) _
Or UCase(Left(MyApp.dfGetWordPy(m_rsNodeDisable!NodeName), MyApp.dfLen(MyApp.dfVntToTrimStr(m_frmRule.txtNodeDisable.Text)))) = UCase(MyApp.dfVntToTrimStr(m_frmRule.txtNodeDisable.Text)) Then
Exit Do
End If
m_rsNodeDisable.MoveNext
DoEvents
Loop
Set .DataSource = m_rsNodeDisable '恢复绑定
Set m_frmRule.lblDisableID.DataSource = m_rsNodeDisable '恢复绑定
Call m_frmRule.dgdNodeDisable.SelBookmarks.Add(m_rsNodeDisable.Bookmark)
End With
Exit Function
ErrTrap:
Select Case MyApp.dfVntToLng(Err.Number)
Case 7005
'由于界面延时产生的这个错误忽略
Case Else
SrchFirstNodeDisable_RationRule_ClothModal_Node = MyApp.dfSemCreate( "mdRationRule_ClothModal_Node.SrchFirstNodeDisable_RationRule_ClothModal_Node ", Err.Number, Err.Description)
End Select
On Error GoTo 0
End Function
[解决办法]
rs.AbsolutePosition = DataGrid1.RowBookmark(你所输入的行号),通过事件触发你可以得到所得到的记录的位置,然后rs(“字段”)出相应的记录即可