翻譯|使用教程|編輯:龔雪|2025-02-17 11:00:20.617|閱讀 105 次
概述:本文主要介紹如何使用DevExpress WinForms Data Grid組件實現識別行操作,歡迎下載最新版組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WinForms擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
在本教程中,您將了解到DevExpress WinForms網格視圖標識其行的方式。
獲取DevExpress WinForms v24.2正式版下載
DevExpress技術交流群11:749942875 歡迎一起進群討論
數據源索引是指綁定列表中的記錄,您將使用它們進行數據編輯。每個數據行都有一個惟一的索引,而組行只引用第一個可用的數據行,而服務行返回負值。
網格視圖使用行句柄來標識任何類型的行,組行有連續的負索引,服務行有預定義值,數據行有正索引。
最后,可見索引按照在屏幕上顯示的順序枚舉所有行,這些標識符主要用于實現行導航。
現在仔細看看何時使用每種類型的行標識符以及它們之間的區別。
如果網格顯示的是普通數據,那么這三個標識符在每行中通常是相同的,它們都是以0開頭的行下標。
數據排序
排序數據是查看這些標識符之間區別的一種方法,記錄的順序改變了,數據源索引也隨之改變。相同的行由相同的數據源索引標識,但順序現在不同了。另一方面,行句柄和可見索引仍然是從0開始的連續整數,并且它們在每行中相互匹配。
過濾數據
當您篩選行時,也會達到類似的效果。數據被重新加載,行結構被重新構建,可見索引和行句柄被更新以反映新的結構,而數據源索引跟隨它們對應的行。
錯誤使用行句柄
重要的一點是,行句柄和可見索引會隨著用戶操作的變化而變化,創建一個簡單的示例來說明這一點。DevExpress WinForms Ribbon控件中的Save Index按鈕將保存當前聚焦行的句柄,為此聲明一個整數savedRowHandle字段,并將網格視圖的屬性值分配給它。
C#
int savedRowIndex; private void barButtonSaveIndex_ItemClick(object sender, ItemClickEventArgs e) { savedRowIndex = gridView1.FocusedRowHandle; }
還有一個Change Value按鈕,它的Click事件處理程序使用方法將Name列單元格設置為保存行中的空字符串。
C#
private void barButtonChangeValue_ItemClick(object sender, ItemClickEventArgs e) { gridView1.SetRowCellValue(savedRowIndex, colName, string.Empty); }
運行應用程序并首先使用Audi A6聚焦行,單擊Save Index按鈕,然后將焦點移開,最后單擊Change Value按鈕。正如預期的那樣,已保存行中的單元格已被更改。
重新啟動應用程序,現在首先對Name列排序,然后找到顯示Audi A6的行。保存行句柄,現在是2 - 使用Save Index按鈕,然后清除排序并注意行句柄是如何更改的。因此,如果您按下Change Value,保存的Audi A6行將不會更改。
使用數據源索引代替行句柄
要解決這個問題,需要修改代碼,使其存儲數據源索引而不是行句柄。然后,在Change Value處理程序中,將存儲的索引轉換為行句柄,然后才應用更改。
C#
int savedRowIndex; private void barButtonSaveIndex_ItemClick(object sender, ItemClickEventArgs e) { savedRowIndex = gridView1.GetDataSourceRowIndex(gridView1.FocusedRowHandle); } private void barButtonChangeValue_ItemClick(object sender, ItemClickEventArgs e) { int rowHandle = gridView1.GetRowHandle(savedRowIndex); gridView1.SetRowCellValue(rowHandle, colName, string.Empty); }
運行應用程序,看看代碼現在是否按預期工作,即使在使用排序或過濾等數據整形操作時也是如此。
未完待續,我們下期見......
更多產品資訊及授權,歡迎“”!
慧都科技為國內眾多知名企業提供一站式的DevExpress產品中文服務,負責DevExpress控件產品中國區的銷售、試用、技術支持,賦能航空航天、金融、醫療等行業客戶成功構建企業級應用!歡迎咨詢:023-68661681,慧都科技助力企業邁向新高度!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網