这是什么回事啊
我以前这样写的都没有错 现在就不行了
我是在DATAGRIL 里面加了一个删除按钮 为什么不允许?((LinkButton)(e.Item.Cells[0].Controls[0])).Attributes.Add("onclick","return confirm('确定删除吗???????????');");行 73:  private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
行 74:  {
行 75:  ((LinkButton)(e.Item.Cells[1].Controls[0])).Attributes.Add("onclick","return confirm('确定删除吗?');");
行 76:  }
行 77:  } 源文件: f:\testaspx\service\webform2.aspx.cs    行: 75 堆栈跟踪: [ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index]
   System.Web.UI.ControlCollection.get_Item(Int32 index) +58
   Service.WebForm2.DataGrid1_ItemCreated(Object sender, DataGridItemEventArgs e) in f:\testaspx\service\webform2.aspx.cs:75
   System.Web.UI.WebControls.DataGrid.OnItemCreated(DataGridItemEventArgs e) +110
   System.Web.UI.WebControls.DataGrid.CreateItem(Int32 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource) +111
   System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource) +1128
   System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +49
   System.Web.UI.WebControls.BaseDataList.DataBind() +23
   Service.WebForm2.Page_Load(Object sender, EventArgs e) in f:\testaspx\service\webform2.aspx.cs:33
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +731
 

解决方案 »

  1.   

    是在ItemDataBound里做么,如果当前行为CloumnHeader,RowIndex=-1时会出现这种情况,需要判断一下。
      

  2.   

    e.Item.ItemType!=ListItemType.Header)&&(e.Item.ItemType!=ListItemType.Footer)这个要加上
      

  3.   

    搞清楚了 是e.Item.ItemType!=ListItemType.Header)&&(e.Item.ItemType!=ListItemType.Footer)
    里面 我写到外面来了
      应该是e.Item.ItemType==ListItemType.I……)||(e.Item.ItemType==ListItemType.A……){
     …………………………
    }