程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> Dev Gridcontrol刪除數據後,獲取當前行數據時出錯

Dev Gridcontrol刪除數據後,獲取當前行數據時出錯

編輯:關於C#
 

今天遇到一個問題就是在使用dev gridcontrol實現刪除後,再通過gridView1_FocusedRowChanged事件同步獲取當前行gridView1.GetFocusedRowCellValue("名稱").ToString()值的時候,報錯了下面的這個錯誤:

異常信息(異常類型:System.NullReferenceException) 異常信息:Object reference not set to an instance of an object. 引發當前異常的方法:Void gridView1_FocusedRowChanged(System.Object,DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) 出錯代碼位置:

private void BingingData()
{
DataTable dtParameter = new DataTable("Parameter");
ds1 = gs.getConfig("");
dtParameter.Columns.Add("名稱");
dtParameter.Columns.Add("內容");
if (judge_ds(ds1))
{
for (int i = 0; i < ds1.Tables[0].Columns.Count; i++)
{
dtParameter.Rows.Add(ds1.Tables[0].Columns[i].ToString(), ds1.Tables[0].Rows[0][i].ToString());
}
}
gridControl1.DataSource = dtParameter;
}

在執行到gridControl1.DataSource = dtParameter;時,回跳轉到gridView1_FocusedRowChanged函數

private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
if (gridView1.FocusedRowHandle > -1)
{
txtName.Text = gridView1.GetFocusedRowCellValue("名稱").ToString();
txtContent.Text = gridView1.GetFocusedRowCellValue("內容").ToString();
}
}

在進入到if循環後,獲取當前行的時候會報出上面的錯誤。 原因分析: 在刪除後,指針指向的那條數據已經不錯,所以在用GetFocusedRowCellValue獲取當前行值的時候,會出現找不到相應行的錯誤信息。 解決方案: 在刪除數據後,綁定數據之前將指針指向第一行。

gs.OperateXml(gridView1.GetFocusedRowCellValue("名稱").ToString(),gridView1.GetFocusedRowCellValue("內容").ToString());
gridView1.MoveFirst();
BingingData();

或者在獲取到要刪除的行後,強制修改焦點行。

if (this.gViewActList.FocusedRowHandle > 0)
{
this.gViewActList.FocusedRowHandle = this.gViewActList.FocusedRowHandle - 1;
}

 

Dev Gridcontrol刪除數據後,獲取當前行數據時出錯
 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved