did you set up mygrid1's DataKeyField?also, you should be doingfor i=0 to myGrid1.items.count-1

解决方案 »

  1.   

    <asp:datagrid id="MyGrid1" runat="server" DataKeyField="PAT_NAME"/>
    这也改了,还是有错!
    for i=0 to myGrid1.items.count-1
    索引超出范围。必须为非负值并小于集合大小。参数名:index 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名:index源错误: 
    行 17:        dim i as integer
    行 18:        for i = 0 to myGrid1.items.count-1
    行 19:        ID=mygrid1.DataKeys(i).ToString()
    行 20:         'ID=myGrid1.Items(i).Cells(3).Text  
    行 21:       'for each litem in mygrid1.items
     源文件: c:\inetpub\wwwroot\accurad\zhuangtai.aspx    行: 19 
      

  2.   

    建议用JAVASCRIPT做客户端脚本,会快好多的,第2点,永远别相信IE和VS给的关于客户端脚本的调试错误信息,90%是错的,不要一次就全部写好客户端的脚本,不然一有错会让你头都大的,一个错就能让全部脚本不执行,所以一小节一小节地写和检测
      

  3.   

    问题出在
    ID=mygrid1.DataKeys(i).ToString()
    请注意 设置 是否正确
      

  4.   

    ID=mygrid1.DataKeys(i).ToString()
      

  5.   

    private void Button1_Click(object sender, System.EventArgs e)
    {
    string mvarCompanySql="";
    int j=this.grd1.Items.Count;
    foreach (DataGridItem item in grd1.Items)
    {


    if (((CheckBox)item.Cells[0].Controls[1]).Checked==true)
    {

    mvarCompanySql=mvarCompanySql+" delete from [pChair]  where BillID='" +((CheckBox)item.Cells[0].Controls[1]).ToolTip.ToString()+"'";
    mvarCompanySql+=" update Reg_Set set PChair='' where BillID='" +((CheckBox)item.Cells[0].Controls[1]).ToolTip.ToString()+"'";
    j--;
    }
    }
    int i=this.grd1.CurrentPageIndex;
    CommonInterface m_CIF=CommonFactory.CreateInstance(CommonData.sql);
    m_CIF.BeginTrans();
    m_CIF.Execute(mvarCompanySql);
    m_CIF.CommitTrans();
    if(j==0)
    {
    if(i!=0)
    {
    i--;
    }
    else
    {
    i=0;
    }
    }
    else
    {
    i=this.grd1.CurrentPageIndex;
    }
    this.FillGrid(i);
    }
      

  6.   

    我分析问题是出在i上,i的范围从0到myGrid1.items.count-1,没有错呀
    为什么会出这样的错误,这错误发生的可能性是什么,请各位高手留步,我都看了好几天了
    快疯掉了。
      

  7.   

    你的datakeysfield属性没有指定,你需要在grid控件中指定。
    或者在.vb叶面中指定.
      

  8.   

    ID=mygrid1.DataKeys(i).ToString()
    请问这句好像没有错误呀!
    datagrid中datakeysfield也设置了呀
      

  9.   

    datakeysfield的数据类型可能有问题,你尝试着用不同的列试一试
      

  10.   

    for i=1 to myGrid1.items.count-1
    你的循环应该是从0开始
    所以数组类型的索引都是从0开始的