2011-12-29 9 views
1

enter image description hereのRowUpdating 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

私はNeeds Bindingもチェックします。GridView1.DataBind()を使用した後、どのイベントがDataBind()の問題 – MethodMan

答えて

2

適切な結果を表示するために、メソッドの最後でデータを再度バインドする必要があると思います。

希望がこれに役立ちます!

2

Eva()ではなくBind()を使用しているマークアップをチェックして、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

のように聞こえるか思い出せません。結果に変化はありません!実際には親愛なる、私はプロジェクトをデバッグすると、値はグリッドから来て古いです。新しくない。更新を押す前に入力したデータベースに新しい値を挿入したいから –

+0

私の問題は編集ボタンを押した後に新しい値を入力するときにupdateを押すとプロパティdao.AridNumberに新しい値が表示されます新しい値の後に私はデータベースを更新するので、古い値です。 –

+0

@ShahidGhafoor - あなたが達成しようとしていることを完全に理解しているかどうかは分かりません。古い値を保存して、GridViewを新しい値で更新し続けますか? – TheBoyan

関連する問題