private void DataGrid产品列表_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch(e.CommandName)
{
case "Select":
Response.Redirect("Products.aspx?ProduceID="+Convert.ToString(DataGrid产品列表.DataKeys[e.Item.ItemIndex]));
break;
case "Delete":
break;
我这个也超越范围?我好命苦啊。

解决方案 »

  1.   

    难道是:DataKeys[e.Item.ItemIndex]-1
      

  2.   

    断点检查一下 e.Item.ItemIndex 的值是否>或=了DataGrid产品列表.DataKeys 的个数.
      

  3.   

    更为叫绝的是,
    CHANG
    Response.Redirect("Products.aspx?ProduceID="+Convert.ToString(DataGrid产品列表.DataKeys[e.Item.ItemIndex]));
    TO
    Response.Write("Products.aspx?ProduceID="+Convert.ToString(DataGrid产品列表.DataKeys[e.Item.ItemIndex]));输出的结果,就要我想要的显示结果。晕死了。
      

  4.   

    e.Item.ItemIndex &DataGrid产品列表.DataKeys.Count,我都输出来比较过。没有超出范围啊。
      

  5.   

    我这个也超越范围?我好命苦啊。
    ------------------
    我肯定你上面的写法有问题,在"超越范围"的时候,你的e.Item.ItemIndex肯定是-1.