获取GridView选中行的 值 ?

xiaojiezii 2011-08-10 11:45:00

当点击第一行, 获取第一行所有单元格的值.
点击第二行,获取第二行所有单元格的值..



protected void gv_Person_SelectedIndexChanged(object sender, EventArgs e)
{
string name = gv_Person.SelectedRow.Cells[1].Text.ToString();
}



为什么这样写会没反应呢.?
在行切换时也没反应.
...全文
264 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xiaojiezii 的回复:]

引用 7 楼 insus 的回复:

参考:
http://www.cnblogs.com/insus/archive/2011/06/30/2094151.html

取到记录的主键,就有办法取到此记录的其它字段的值。

我不想点击某一个位置.
就是点击某一行. 可以实现吗
[/Quote]
点击某行 获取该行的索引 然后findcontrol来找

<asp:GridView ID="GridView5" runat="server" AutoGenerateColumns="False" onrowdatabound="GridView5_RowDataBound" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#DataBinder.Eval(Container,"DataItem.ID") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>


protected void GridView5_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("style", "cursor:pointer");
e.Row.Attributes.Add("onclick", "document.getElementById('TextBox5').value=" + e.Row.RowIndex + "");
}
}
xiaojiezii 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 insus 的回复:]

参考:
http://www.cnblogs.com/insus/archive/2011/06/30/2094151.html

取到记录的主键,就有办法取到此记录的其它字段的值。
[/Quote]
我不想点击某一个位置.
就是点击某一行. 可以实现吗
insus 2011-08-10
  • 打赏
  • 举报
回复
参考:
http://www.cnblogs.com/insus/archive/2011/06/30/2094151.html

取到记录的主键,就有办法取到此记录的其它字段的值。
xiaojiezii 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lvyichang 的回复:]

楼主的语句没错!!
[/Quote]

Gridview 中只有一个TemplateField
其余都是BoundField.
我想取的值都是在BoundField 里面
lvyichang 2011-08-10
  • 打赏
  • 举报
回复
楼主的语句没错!!
lvyichang 2011-08-10
  • 打赏
  • 举报
回复
看看你是否设置了模版列!
如果是模版列的话,用cells是取不到的,要用FindControl来取!
xiaojiezii 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lmaohuanl 的回复:]

[e.NewSelectedIndex]这句是重点
[/Quote]

但我点击了 还是没反应啊.
LMAOhuaNL 2011-08-10
  • 打赏
  • 举报
回复
[e.NewSelectedIndex]这句是重点
LMAOhuaNL 2011-08-10
  • 打赏
  • 举报
回复
GridView1.Rows[e.NewSelectedIndex].Cells[0].text;//此为你要得到的选中行的第一列的数据
GridView1.Rows[e.NewSelectedIndex-1].Cells[0].text;//此为你要得到的选中行的上一行的第一列的数据
暖枫无敌 2011-08-10
  • 打赏
  • 举报
回复

<script type="text/javascript">
function showRowId(obj, rowid) {
if (rowid != null) {
alert("当前是第"+rowid+"行!");
}
}

function showMsg(obj, msg) {
if (rowid != null) {
alert("当前行数据为:" + msg );
}
}
</script>

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick","showMsg(this,'"+e.Row.Cells[0].Text+","+e.Row.Cells[1].Text+"')"); //获得主键
e.Row.Attributes.Add("onclick", "showRowId(this," + (e.Row.RowIndex + 1) + ")"); //显示当前第几行
}
}
  • 打赏
  • 举报
回复
事件写错了吧。。。
孟子E章 2011-08-10
  • 打赏
  • 举报
回复
你怎么判断没反应的?
你Response.Write(name );没有东西?
mamxfx 2011-08-10
  • 打赏
  • 举报
回复
<%#DataBinder.Eval(Container,"DataItem.ID") %>

用来绑定表字段值;
xiaojiezii 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wxr0323 的回复:]

引用 8 楼 xiaojiezii 的回复:

引用 7 楼 insus 的回复:

参考:
http://www.cnblogs.com/insus/archive/2011/06/30/2094151.html

取到记录的主键,就有办法取到此记录的其它字段的值。

我不想点击某一个位置.
就是点击某一行. 可以实现吗

点击某行 获取该行的索引 然后findcon……
[/Quote]
不好意思. 请问
<%#DataBinder.Eval(Container,"DataItem.ID") %>
是什么来的呢?
xiaojiezii 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ajaxtop 的回复:]

调试查看name值为???

说不定你的changed事件没有执行
[/Quote]

嗯 name没反应. 貌似没执行.
ajaxtop 2011-08-10
  • 打赏
  • 举报
回复
调试查看name值为???

说不定你的changed事件没有执行
学会思考 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lmaohuanl 的回复:]

GridView1.Rows[e.NewSelectedIndex].Cells[0].text;//此为你要得到的选中行的第一列的数据
GridView1.Rows[e.NewSelectedIndex-1].Cells[0].text;//此为你要得到的选中行的上一行的第一列的数据
[/Quote]

顶一个

62,041

社区成员

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

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

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

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