错误“索引超出范围”.在ASP.网络应用程序

本文关键字:ASP 网络 应用程序 范围 索引 错误 | 更新日期: 2023-09-27 17:53:38

我正在制作一个应用程序ASP。. Net/c#在那里我有一个Gridview与复选框在每一行。

问题是其中一些通过选择并点击"保存"出现以下错误:

索引超出范围。必须非负且小于集合的大小。' r ' n参数名称:index.

这个错误似乎只发生在Gridview的最后一行。下面是Gridview窗口的代码片段和属性:

c#

protected void btnOKVulsProj_Click(object sender, EventArgs e)
    {
            //Variables
        for (int cont = 0; cont < grdListaVulsProj.Rows.Count; cont++)
        {
            idVul = Convert.ToInt32((grdListaVulsProj.Rows[cont].Cells[0]).Text);
            string strQueryInsert = ("INSERT TO DATABASE");
            if (((CheckBox)grdListaVulsProj.Rows[idVul].FindControl("chkSelecionaItem")).Checked)  <<< WHERE THE ERROR OCCURS
            {
                Conexao.Inserir(strQueryInsert); //Method that performs the insertion
            }
        };
            //Other instructions
    }



显示数据表格属性的

http://i56.tinypic.com/33f3hqf.jpg

注意:Gridview的目的是在数据库中注册所有被选中的行。

注释2:我广泛地搜索了一个Web解决方案,但所有提供的,没有一个解决我的问题。

谢谢!

[]的

错误“索引超出范围”.在ASP.网络应用程序

你的一行应该是:

if (((CheckBox)grdListaVulsProj.Rows[cont].FindControl("chkSelecionaItem")).Checked)  <<< WHERE THE ERROR OCCURS  

我猜你的问题在这里:

if (((CheckBox)grdListaVulsProj.Rows[idVul]...

idVul真的索引到行集合,还是你的意思是使用cont在那里?

我通常遇到的问题是,第0行实际上是标题和最后一行是页脚。

试试这样的比较:

if (grdListaVulsProj.Rows[cont].RowType == DataControlRowType.DataRow)
{
// your code here
}