2013-07-08 32 views
0

我有一個帶有Edit commandfield的gridview。 在gridview的templatefield中,我在編輯項目模板中有一個文本框。 在RowUpdating事件中,我嘗試獲取文本框的值。在GridView混亂中編輯項目模板TextBox值

TextBox text = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtfname"); 

GridViewRow row =GridView1.Rows[e.RowIndex] as GridViewRow; 

TextBox tFirstName = row.FindControl("txtfname") as TextBox; 

TextBox textFName = (TextBox)row.Cells[0].Controls[3]; 

我試過所有三個methods.When我把

if(!IsPostBack)Bind_grid(); 

我得到的textbox.text值empty.If我刪除的條件,我得到這是綁定在使用控件綁定值函數在標記頁面中。我從來沒有得到我在控件中編輯的值。

我哪裏錯了?解?

+0

有人幫我儘快:( –

回答

0

我猜你的網格已啓用分頁功能。因此,您正在獲取網格中顯示的行的索引(而不是數據源)。

例如:您位於網格的第2頁,每頁有10個項目。你點擊第3行的編輯。 e.RowIndex將是2.

如果你想映射它到你的數據源,這應該是...((page - 1)* items)+ index;

((2-1)* 10)+ 2 = 12

因此,在您的數據源,你應該得到是在位置上的項目12

+0

我不想它將它映射到數據源。我想要在當前頁面中的文本框的值。是我已啓用分頁 –

+0

事件的簽名是什麼?使用GridViewEditEventArgs,GridViewRowEventArgs或GridViewUpdatedEventArgs的? – mtzaldo

+0

我已經提到過它的問題是Rowupdating ..簽名有一個GridViewUpdateEventArgs –