2016-05-24 7 views
1

私は、更新、削除、キャンセルのコードを書いています& GridBoxの行を編集しています。 キャンセル&編集が正常に動作します。しかし、私は更新をクリックするか、または削除するとき、私は更新するためのGridboxの更新または削除C#

Index was out of range. Must be non-negative and less than the size of the collection. 
Parameter name: index 

を示すエラーを取得し、コードは

protected void Show_Grid_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    int id = int.Parse(Show_Grid.DataKeys[e.RowIndex].Value.ToString()); 
    TextBox txt_title = (TextBox)Show_Grid.Rows[e.RowIndex].FindControl("Title"); 
    TextBox txt_desc = (TextBox)Show_Grid.Rows[e.RowIndex].FindControl("Description"); 
    TextBox drop_prior = (TextBox)Show_Grid.Rows[e.RowIndex].FindControl("Priority"); 

    Update_todo(id, txt_title.Text, txt_desc.Text, drop_prior.Text); 
    Show_Grid.EditIndex = -1; 
    DataBind(); 
} 

データベースは、我々が行うことができ

id, Title, Description, Priority 

My Project GridBox

+0

なぜ "Show_Grid.EditIndex = -1;"を割り当てていますか? – brokenisfixed

+0

@brokenisfixed作成されたIDに従ってデータベースから値を索引付けします。 –

+0

Show_Grid.EditIndex = -1;行がもう編集されていないことを示すだけです... – Mack

答えて

0

が含まれていますGridViewの定義がありますが、ここでチェック/試してみましょう。

データキー名を指定しましたか?

DataKeyNames="id" 

あなたはコードの最初の行にブレークポイントを入れてみましたし、エラーをスローし、コードのどの行を見つけるために通過ステップがありますか?

+0

はい私はチェックしました。 'int id = int.Parse(Show_Grid.DataKeys [e.RowIndex] .Value.ToString());'エラーをスローする –

+0

Show_Grid.DataKeys [e.RowIndex] .Valueの値は何ですか? – Mack

関連する問題