2014-01-31 120 views
1

我在我的asp.net頁面中有一個網格。在選定的索引更改事件中,我實現了下面的代碼。網格視圖選中的行單元格值爲空

int ID = Convert.ToInt32(grdMnaualEntryTransactionTemplate.Rows[selectedIndex +1].Cells[1].Text); 

小區1是一個數字, 在運行的時候它給了我一個錯誤「輸入字符串的不正確的格式」。它的發生是由於「文本」在運行時間越來越空。我在Selected index changed事件中也實現了下面的代碼,它總是得到一個值。

int selectedIndex = grdMnaualEntryTransactionTemplate.SelectedIndex; 

回答

2

你爲什麼用selectedIndex + 1?這會給你所選行下面的行,並在用戶選擇網格中的最後一行時引發異常。

嘗試int ID = Convert.ToInt32(grdMnaualEntryTransactionTemplate.Rows[selectedIndex].Cells[1].Text);

1

如果妳想要選擇的值,然後ü可以通過DataKeyName設置和SelectedIndexChanged事件致電..

string data = grdMnaualEntryTransactionTemplate.SelectedValue.ToString(); 
1

如果您對電網,即操作按鈕。選擇,編輯等,然後這些將在Rows.Cells[]陣列中。因此,如果每行有三個「選擇」「編輯」「刪除」按鈕,則第一個實際數據單元將爲數組索引[3]。

正如其他人指出,索引+ 1也是不正確的。

2

您可以使用這樣的..這是簡單的方式來獲得所選行的數據在GridView控件.. 嘗試下面的代碼..

int ID = Convert.ToInt32(grdMnaualEntryTransactionTemplate.SelectedRow.Cells[1].Text); 
+0

@ user3383403,嗨,在我的情況下文本始終是在空所有單元格,請注意我的網格中有AutoGenerateColumns = false – user123456

相關問題