2011-12-29 92 views
1

enter image description hereRowUpdating GridView控件顯示舊價值

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    GridView1.EditIndex = e.NewEditIndex; 
    GridView1.DataBind(); 

} 
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
{ 
    GridView1.EditIndex = -1; 
    GridView1.DataBind(); 
} 

行編輯和行取消編輯做工精細;但是當我在更改文本框中的值後按更新時,它顯示的舊值不是我已更改的值。以下是行更新事件代碼。

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 

dao.AridNumber = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text; 
dao.FirstName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text; 
dao.LastName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text; 

} 

更新我!

+0

我也將檢查需要綁定我不記得是什麼事件,但聽起來像使用GridView1.DataBind()後DataBind()問題 – MethodMan 2011-12-29 18:21:35

回答

2

我認爲您需要在方法的最後一次再次綁定數據以顯示適當的結果。

希望這有助於!

2

檢查您使用Bind()的標記,而不是Eva()將值綁定到TextBox。

下面是一個例子:

<EditItemTemplate> 
    <asp:TextBox ID="someId" runat="server" Text='<%# Bind("SomeField") %>'></asp:TextBox> 
</EditItemTemplate> 
1

你需要調用GridView1.DataBind()到底:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 

     dao.AridNumber = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text; 
     dao.FirstName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text; 
     dao.LastName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text; 

     GridView1.DataBind(); 
} 

編輯:

你可能想看看RowUpdating文檔,特別是我認爲OldValuesNewValues屬性可能是對你有用。

+0

;結果沒有變化!實際上,親愛的,當我調試該項目時,來自網格的價值已經很老了。不是新的。因爲我想在我按下更新前輸入的數據庫中插入新值 – 2011-12-29 18:37:42

+0

我的問題是,當我按下編輯按鈕後輸入新值時,按下更新時,它在屬性dao.AridNumber中顯示新值,但它顯示舊值,因爲在新值之後,我將更新數據庫 – 2011-12-29 18:40:28

+0

@ShahidGhafoor - 我不確定我完全理解你想要達到的目標。您是否嘗試保存舊值,然後繼續使用新值更新GridView? – TheBoyan 2011-12-29 18:44:56

相關問題