查看GridView控件中的详细信息

Dom 2012-02-22 10:44:56
当用户单击【详细信息】按钮的时候触发SelectedIndexChanging事件,然后另外一个GridView绑定相应数据并显示
后台代码如下:
protected void Page_Load(object sender, EventArgs e)
{
Bind();
}

dbMethod dbM = new dbMethod();

public void Bind()
{
string str = "select * from tb_Cars";
DataTable dt = dbM.GetDataTable(str);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
string carID = this.GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
string str = "select * from tb_Cars where carID='" + carID + "'";
DataTable dt = dbM.GetDataTable(str);
this.GridView2.DataSource = dt;
this.GridView2.DataBind();
}


但调试的时候报错:索引超出范围。必须为非负值并小于集合大小。
参数名: index

想问string carID = this.GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();这句哪里错了?
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dom 2012-02-22
  • 打赏
  • 举报
回复
设置主键之后也不对
naonaoye 2012-02-22
  • 打赏
  • 举报
回复
建议用RowCommand事件





----------------------------------签----------名----------栏----------------------------------
上班,周末,上班,周末
CodingR 2012-02-22
  • 打赏
  • 举报
回复
貌似应该设置主键-在前台DataKeyNames=“你的主键名”
zhangdaowu5 2012-02-22
  • 打赏
  • 举报
回复
GridView1.DataKeys[e.RowIndex].Value.ToString()
Thinking01 2012-02-22
  • 打赏
  • 举报
回复
断点调试一下,我以前出过这样的问题,没有设置DataKeyNames

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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