CurrentChanged表的當(dāng)前行變更事件。表數(shù)據(jù)重新加載后也會(huì)重新定位到第一行數(shù)據(jù),此時(shí)也會(huì)觸發(fā)此事件。同時(shí),表的篩選或排序操作也會(huì)觸發(fā)此事件。另外,添加或刪除當(dāng)前行之前的行、刪除或移動(dòng)當(dāng)前行本身,或?qū)⑵渌幸苿?dòng)到當(dāng)前位置也會(huì)觸發(fā)此事件。
另外還有一個(gè)PositionChanged事件跟此事件效果差不多。PositionChanged事件是指表的Position位置變更就會(huì)觸發(fā)。
CurrentChanged | 是 | 數(shù)據(jù) | 表的當(dāng)前行變更事件。 |
PositionChanged | 是 | 數(shù)據(jù) | 表的當(dāng)前位置變更事件。此事件跟CurrentChanged事件效果類似。 |
示例:我們可以在主表當(dāng)前行變動(dòng)時(shí),重新加載子表的信息。
Vb.Net |
Public Sub CurrentChanged(sender As Object,e As System.EventArgs) Dim tbl As SmGrid=sender '要先判斷一下當(dāng)前行是否為空 If tbl.CurrentRowData IsNot Nothing Then '獲得當(dāng)前窗體 Dim frm As SmForm=tbl.Form '獲得子表的引用 Dim tblSub As SmGrid=frm.Grids("訂單明細(xì)") '設(shè)置加載條件 tblSub.DataTableHelp.LoadFilter="訂單號='" & tbl.CurrentRowData("訂單號") & "'" '開始重新加載數(shù)據(jù) tblSub.DataTableHelp.Load() End If End Sub |
C# |
public void CurrentChanged(object sender, System.EventArgs e) { SmGrid tbl = sender as SmGrid; // 要先判斷一下當(dāng)前行是否為空 if (tbl.CurrentRowData != null) { // 獲得當(dāng)前窗體 SmForm frm = tbl.Form; // 獲得子表的引用 SmGrid tblSub = frm.Grids["訂單明細(xì)"] as SmGrid; // 設(shè)置加載條件 tblSub.DataTableHelp.LoadFilter = "訂單號='" + tbl.CurrentRowData["訂單號"].ToString() + "'"; // 開始重新加載數(shù)據(jù) tblSub.DataTableHelp.Load(); } } |