2012-02-28 14 views
0

ユーザーがリストにビデオを追加したり削除したりできるサイトを作っています。すべての追加と削除はチェックボックスで行います。一度に複数の動画を追加することはできますが、リストから複数の動画を削除しようとすると、次のエラーが表示されます:「インデックスが範囲外です。コレクション。パラメータ名:インデックス "ただし、一度に削除する際に問題がない場合。また、私はエラーを取得し、チェックされたビデオがなくなって戻って行く。ここでインデックスの範囲外の例外

は両方の追加と削除イベントのコードです:

protected void btnAddVideo_Click(object sender, EventArgs e) 
{ 
    foreach (GridViewRow gvr in GridView3.Rows) 
    { 
     CheckBox chkItem = (CheckBox)gvr.FindControl("cbAdd"); 
     if (chkItem.Checked) 

     { 
      String sRecID = GridView3.DataKeys[gvr.RowIndex].Value.ToString(); 
      Session["videorecid"] = sRecID; 
      SqlDataSource2.Insert(); 
      SqlDataSource2.SelectCommand = "SELECT * FROM dealervideo inner join videos on videos.RecID = dealervideo.VideoRecID inner join dealers on dealers.RecID = dealervideo.DealerRecID where dealers.RecID = " + hidRecID.Value; 
      GridView2.DataBind(); 
     } 
    } 
    GridView2.DataBind(); 
} 
protected void btnDeleteVideo_Click(object sender, EventArgs e) 
{ 
    foreach (GridViewRow gvr in GridView2.Rows) 
    { 
     CheckBox chkItem = (CheckBox)gvr.FindControl("cbDelete"); 
     if (chkItem.Checked) 
     { 
      String sRecID = GridView2.DataKeys[gvr.RowIndex].Value.ToString(); 
      Session["videorecid"] = sRecID; 
      SqlDataSource2.Delete(); 
      SqlDataSource2.SelectCommand = "SELECT * FROM dealervideo inner join videos on videos.RecID = dealervideo.VideoRecID inner join dealers on dealers.RecID = dealervideo.DealerRecID where dealers.RecID = " + hidRecID.Value; 
      GridView2.DataBind(); 
     } 
    } 
} 

私はこれが多すぎても少なすぎても情報である場合ので、私は申し訳ありませんstackoverflowのために新しいです。

EDIT: これはC#ASP.NETであり、どこにエラーがあるのか​​わかりませんが、btnDeleteVideo_Clickイベントにあると思います。必要に応じて、他のイベント(btnAddVideo_Click)を参照として表示しています。それが助けになるなら、私はそれを取り除くことができます。

+1

これはあまりにも*と*少なすぎます。コードを正確な失敗に減らし、言語を指定します。 –

答えて

1

私の推測では、forループ内でデータ構造(GridView2.Rows)を変更してforループを参照しているので、btnDeleteVideo_Clickメソッドで問題が発生していると思います。ほとんどの言語でこれは悪い習慣です。私のアドバイスは、最初にあなたのforループ内のすべてのチェックされた行のリストを作成し、各行に対して削除を行うのではなく、1回のショットで複数の行を1回削除します。

関連する問題