ユーザーがリストにビデオを追加したり削除したりできるサイトを作っています。すべての追加と削除はチェックボックスで行います。一度に複数の動画を追加することはできますが、リストから複数の動画を削除しようとすると、次のエラーが表示されます:「インデックスが範囲外です。コレクション。パラメータ名:インデックス "ただし、一度に削除する際に問題がない場合。また、私はエラーを取得し、チェックされたビデオがなくなって戻って行く。ここでインデックスの範囲外の例外
は両方の追加と削除イベントのコードです:
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)を参照として表示しています。それが助けになるなら、私はそれを取り除くことができます。
これはあまりにも*と*少なすぎます。コードを正確な失敗に減らし、言語を指定します。 –