如何在Button控件Click事件中获取GridView当前行的单元格数值

jstzcl007 2011-05-12 03:09:12
如何在Button控件Click事件中获取GridView当前选中行的单元格数值
...全文
414 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-05-12
  • 打赏
  • 举报
回复
Rows[i].FindControl("")
jstzcl007 2011-05-12
  • 打赏
  • 举报
回复
我是这样的
int int_gridviewrowid=-1;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
int_gridviewrowid = e.Row.RowIndex;//获取双击GridView控件行号
e.Row.Attributes.Add("onclick", "selectChange(this)");//调用JS函数
e.Row.Attributes.Add("ondblclick", "rowdata()");
}
}
然后在Button的Click事件中
protected void Button4_Click(object sender, EventArgs e)
{
TextBox1.Text = int_gridviewrowid.ToString();
}
但是无论点击了哪一行,TextBox1中始终显示-1,这是怎么回事
天下在我心 2011-05-12
  • 打赏
  • 举报
回复
设置button的commandName属性,CommandName="SEL" CommandArgument="你要的数值"
设定GridView的RowCommand事件
然后

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName=="SEL")
{
string str=e.CommandArgument.ToString();
//继续下一步
}
}
jstzcl007 2011-05-12
  • 打赏
  • 举报
回复
谢谢各位,但是我的GridView里没有CheckBox控件
liufeigege 2011-05-12
  • 打赏
  • 举报
回复
不好意思看错需求了,我以为是删除了。
foreach (GridViewRow i in this.GridView1.Rows)
{
CheckBox cb = (CheckBox)(i.Cells[0].FindControl("CheckBox1"));
if (cb.Checked)
{
product p = new product();
p.ProductId= int.Parse(this.GridView1.DataKeys[i.RowIndex].Value.ToString());//这样用的话必须在设计页面指定GridView的Datakeys性 }
}
liufeigege 2011-05-12
  • 打赏
  • 举报
回复
 foreach (GridViewRow i in this.GridView1.Rows)
{
CheckBox cb = (CheckBox)(i.Cells[0].FindControl("CheckBox1"));
if (cb.Checked)
{
product p = new product();
p.ProductId= int.Parse(this.GridView1.DataKeys[i.RowIndex].Value.ToString());
BLL.ListBLL lst = (BLL.ListBLL)Session["list"];//获取要删除的行唯一标示
if (lst.delpro(p))//执行删除的方法
{
Session["list"] = lst;
ShowAll();
}
}
}
小童 2011-05-12
  • 打赏
  • 举报
回复
foreach (GridViewRow item in this.GridView1.Rows )
{
CheckBox cb = (CheckBox)item.FindControl("CheckBox1");
if (cb.Checked)
{
string id=GridView1.Rows[item.RowIndex].Cells[1].Text.ToString().Trim();

}
}
zhangyong361055720 2011-05-12
  • 打赏
  • 举报
回复
方法1:用一个HiddenField记录那行的id,然后再Button中,去HiddenField的value值就可以了
方法2:用session[]在gridview事件中记录id,然后把session[]传到Button中也可以
naonaoye 2011-05-12
  • 打赏
  • 举报
回复
foreach (GridViewRow item in this.GridView1.Rows )
{
CheckBox cb = (CheckBox)item.FindControl("CheckBox1");
if (cb.Checked)
{
string id=GridView1.Rows[item.RowIndex].Cells[1].Text.ToString().Trim();

}
}

62,046

社区成员

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

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

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

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