gridview中的GridView1.DataKeys问题,急.我尽量加分

yydwlp 2009-01-06 04:40:46
public void updatashoppingcartdatabase(DataSet ds)
{

//string useid = Session["userid"];
int rowsCount = GridView1.Rows.Count;
GridViewRow gridRow;
System.Web.UI.WebControls.TextBox quantityTextBox;

int quantity, Id;

// 遍历GridView中的每一行
for (int i = 0; i < rowsCount; i++)
{
// 获行当前行
gridRow = GridView1.Rows[i];
// 通过DATAKEYS来取行没显示出来的ID号
Id = Convert.ToInt32(GridView1.DataKeys[i].Value);


//
quantityTextBox = (System.Web.UI.WebControls.TextBox)gridRow.FindControl("TextBox2 ");
// 转换为整形,如果输入的是非法字符Int32.TryParse返回FALSE
if (Int32.TryParse(quantityTextBox.Text, out quantity ))
{
// 调用业务层的方法更新数据

getcnandds gg = new getcnandds();
gg.updataservertable(Id, quantity.ToString());

}


}
}



运行的时候老是出现这样的异常.
索引超出范围。必须为非负值并小于集合大小。
参数名: index
我到网上查过,好像说要设置gridview的datakeyfield属性但是我老是找不到这个属性,各位高手请帮忙啊,具体一点,详细一点,谢谢.
...全文
636 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AndrewWQB 2011-03-28
  • 打赏
  • 举报
回复
设置一下DataKeyNames的值就可以了。
chinawes 2009-01-07
  • 打赏
  • 举报
回复

GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "id" };//可以在绑定之前指定DataKeyNames的对应字段
GridView1.DataBind();


取值时

Id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
jiang_jiajia10 2009-01-07
  • 打赏
  • 举报
回复
GridView.DataKeyFields=new string[]{"userid"};
yydwlp 2009-01-07
  • 打赏
  • 举报
回复
loginame怎么让它等同于session["userid"],ASP的代码我不会,我只会C#
oec2003 2009-01-06
  • 打赏
  • 举报
回复
datagrid和gridview是不一样的

datagrid.DataKeyFields

gridview.DataKeyNames
oec2003 2009-01-06
  • 打赏
  • 举报
回复
GridView设置DataKeyNames属性
<asp:GridView ID= "GridView1 " runat= "server " DataKeyNames= "loginName "
wuyq11 2009-01-06
  • 打赏
  • 举报
回复
在数据源绑定到GridView上时
GridView.DataKeyFields=new string[]{"id"};

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧