2014-01-13 54 views
0
private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) 
{    
    WriteUsersInformation((User)grdPersonel.MainView.GetRow(e.RowHandle));       
} 

我用GridView的過濾面積,所以如果用戶點擊過濾面積「的NullReferenceException是未處理」的錯誤出現。我怎麼才能區分選擇行數據行或過濾器,所以我想把控制。我真的很陌生,謝謝。的NullReferenceException在XtraGrid中的GridView rowclick事件(篩選行)

+0

對不起,你的英語沒什麼幫助,我不明白你需要什麼。你從哪裏來?也許我可以用你掌握的語言理解你的問題。 – chiapa

+0

我只想找到我如何分開單擊行,它是行或數據網格中的過濾器。我正在使用devexpress datagridview和ıts過濾器選項,和c#。我是土耳其人。 – witchqueen

+0

因此,基本上你有不同的行..一些行或1行是一個過濾器和其他數據。現在,當你選擇一個過濾器行,你會得到異常。我對嗎 ? – Jim

回答

0
if (e.RowHandle < 0) 
{ 
    //Invalid row 
} 
else 
{ 
    WriteUsersInformation((User)grdPersonel.MainView.GetRow(e.RowHandle)); 
} 
+0

謝謝,但它沒有工作我仍然有同樣的錯誤和e.rowHandle是int所以e.RowHandle!= 0我嘗試。我有「不等於'空'類型的'int'警告。 – witchqueen

+0

如果e.rowhandle返回一個int然後嘗試e.RowHandle <0 – Jim

0

我認爲過濾面積你的意思是自動篩選行,如果是的話,你可以檢查是否選擇行控等於自動過濾處理一行

if (e.RowHandle != DevExpress.XtraGrid.GridControl.AutoFilterRowHandle) 
{ 
// your code 
} 

但我真的建議你編寫一個更安全的代碼,只需檢查你的用戶對象是否爲空。

private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) 
{ 
    var user = gridView1.GetRow(e.RowHandle) as User; 
    if (user == null) 
     return; 

    WriteUsersInformation(user); 
} 
0
private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) 
    { 

     object oUsr = grdPersonel.MainView.GetRow(e.RowHandle); 
     if (oUsr is User) 
      WriteUserInformation((User)oUsr); 

     } 

當自動篩選最後一個用戶單擊行我目前的目標越來越空,我使用此代碼解決了再次感謝所有的答案。