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