我有一個gridcontrol綁定到Datatable,在我的網格中,我讓用戶選擇產品進行處理。如何防止添加重複行到DevExpress gridControl
問題是我不希望用戶將兩次相同的產品代碼添加到網格中。
有沒有辦法阻止他們兩次添加相同的產品代碼?
我已經嘗試過的獨特attirbute在我的DataTable蒲式耳,因爲我需要它並沒有完全奏效。
任何幫助將不勝感激
我有一個gridcontrol綁定到Datatable,在我的網格中,我讓用戶選擇產品進行處理。如何防止添加重複行到DevExpress gridControl
問題是我不希望用戶將兩次相同的產品代碼添加到網格中。
有沒有辦法阻止他們兩次添加相同的產品代碼?
我已經嘗試過的獨特attirbute在我的DataTable蒲式耳,因爲我需要它並沒有完全奏效。
任何幫助將不勝感激
我想到了這樣的事情
gridViewDefault.RowLoaded += gridViewDefault_RowLoaded;
Hashtable hashTable = new Hashtable();
void gridViewDefault_RowLoaded(object sender, RowEventArgs e)
{
var obj = (sender as GridView).GetRow(e.RowHandle) as OrderDocument;
var uniqueId = obj.Document.DocumentId;
if(hashTable[uniqueId] == null)
hashTable.Add(uniqueId, 1);
else
(sender as GridView).DeleteRow(e.RowHandle);
}
但隨後看到,RowLoaded事件僅在Instant Feedback Mode
大火顯然有一個數據源後沒有立即事件已經完成加載。
因此,基於事件的相反,我會去一個類似於我寫了一個函數,它迭代整個GridView控件,你把所有的數據之後。
我通常使用GridView.ValidateRow事件,當用戶完成編輯行時應該觸發該事件。事件參數通過e.Row提供對行對象的訪問,通過e.ErrorText提供錯誤消息,通過e.Valid提供有效狀態,所以它應該是一個簡單的事情,即從更新的行中獲取產品代碼並在其中查找數據表。
您可能想要設置產品查找過濾器 – HubertL