2011-08-29 68 views
0

我試圖執行下面的代碼,我得到一個錯誤說:名稱「行」並不在當前的背景下存在

名稱「行」並不在當前的背景下存在

代碼

protected void wgrdSearchResult_RowCommand(object sender, GridViewCommandEventArgs e) 
     { 

      if (e.CommandName == "edit") 
      { 
       int index = Convert.ToInt32(wgrdSearchResult.DataKeys[row.RowIndex].Value); 

       //int index = Int32.Parse((string)e.CommandArgument); 
       string CustomerID = (string)wgrdSearchResult.DataKeys[index].Values["CustomerID"]; 
      } 


     } 

回答

0

您尚未申報名爲row的任何變量,因此您對index的分配失敗。

1

行未在您的方法中聲明。看看這個MSDN的例子,顯示你似乎正在嘗試做什麼。 從上面的鏈接:

// Convert the row index stored in the CommandArgument 
    // property to an Integer. 
    int index = Convert.ToInt32(e.CommandArgument); 

    // Retrieve the row that contains the button clicked 
    // by the user from the Rows collection. 
    GridViewRow row = ContactsGridView.Rows[index]; 
+0

+1首先提到CommandArgument,它聽起來像一個計劃。 – CharithJ

0

試試這個:

protected void wgrdSearchResult_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "edit") 
    { 
     int index = Convert.ToInt32(wgrdSearchResult.DataKeys[e.CommandArgument].Value); 

     string CustomerID = (string)wgrdSearchResult.DataKeys[e.CommandArgument].Values["CustomerID"]; 
    } 
} 

你可以顯示在GridView的前端以及代碼?我的代碼假設你有一個DataKey(即CustomerID),或者你爲GridView設置了多個數據鍵,其中第一個數據鍵是一些任意的「索引」,顯然沒有意義,並且從未使用第二個關鍵是一個有意義的CustomerID。

相關問題