CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

一个按钮列的问题

楼主lanren1985(萘纙)2006-05-01 10:25:38 在 .NET技术 / ASP.NET 提问

using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
   
  namespace   Northwind  
  {  
  ///   <summary>  
  ///   DataGrid_Edit   的摘要说明。  
  ///   </summary>  
  public   class   DataGrid_Edit   :   System.Web.UI.Page  
  {  
  DBAccess   db   =   new   DBAccess();  
  protected   System.Web.UI.WebControls.DataGrid   DG_Products;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  if(!Page.IsPostBack)  
  DG_DataBind();  
  }  
  private   void   DG_DataBind()  
  {  
  string   strsql   =   "select   *   from   Products   where   UnitsOnOrder>0";  
  db.BindDataGrid(strsql,   DG_Products);  
  }  
  private   void   DG_Products_EditCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
  DG_Products.EditItemIndex   =   e.Item.ItemIndex;  
  DG_DataBind();  
  }  
   
  private   void   DG_Products_CancelCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
  DG_Products.EditItemIndex   =   -1;  
  DG_DataBind();  
  }  
   
  private   void   DG_Products_UpdateCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
  string   ProductID   =   DG_Products.DataKeys[e.Item.ItemIndex].ToString();  
  string   newProductName   =   ((TextBox)(e.Item.Cells[0].Controls[0])).Text;  
  string   newUnitsOnOrder   =   ((TextBox)(e.Item.Cells[1].Controls[0])).Text;  
  string   updatestr   =   "update   Products   set   ProductName   ="   +   newProductName   +   ",UnitsOnOrder   ="   +   newUnitsOnOrder   +   "where   ProductID   =   "   +   ProductID;  
  db.ExecuteSql(updatestr);  
  DG_Products.EditItemIndex   =   -1;  
  DG_DataBind();  
  }  
  }  
  }  
  代码如上,运行的时候可以,但是改了数值后就点更新就报错了:  
  索引超出范围。必须为非负值并小于集合大小。参数名:   index  
   
  这个是什么意思啊,谢谢哪位达人讲讲 问题点数:5、回复次数:4Top

1 楼lanren1985(萘纙)回复于 2006-05-01 11:09:37 得分 0

谢谢哪位讲讲啊Top

2 楼lanren1985(萘纙)回复于 2006-05-01 11:30:35 得分 0

郁闷了Top

3 楼iamdavid0123(努力会有回报吧)回复于 2006-05-01 11:31:38 得分 0

string   ProductID   =   DG_Products.DataKeys[e.Item.ItemIndex].ToString();  
  这句可能有问题,你设个断点,运行到这里看看productid是什么Top

4 楼lanren1985(萘纙)回复于 2006-05-01 12:35:41 得分 0

我自己搞出来,我没有设置DataKeyField的值,我还是新人,不太懂,没有设置这个我郁闷了1个多小时没找到原因Top

相关问题

关键词

得分解答快速导航

  • 帖主:lanren1985

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo