如何获取DataView控件的行号?

yingchenglangzi 2007-12-12 03:40:29
我在DataView中创建了模板列,并指定为linkbutton,现在希望通过点击linkbutton获取这一行上的某个值,但是不知道如何获取行号,请指教

Label lb = (Label)(GridMain.Rows[1].FindControl("LabelID"))
其中GridMain是dataview的实例,现在这句话可以获取第一行的LabelID的值,但是实际上不一定会点击哪一行,怎么把那个“1”变成动态获取的行号呢?
...全文
352 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongsong1 2008-01-14
  • 打赏
  • 举报
回复
高手太多了,向高手致敬
bo3235 2007-12-12
  • 打赏
  • 举报
回复
高人一堆啊,来晚了,向高人学习
patann 2007-12-12
  • 打赏
  • 举报
回复
这样也可以获取行号:
在GridView中的RowCommand事件中
Control cmdControl = e.CommandSource as Control;
GridViewRow cmdRow = cmdControl.NamingContainer as GridViewRow;

cmdRow.RowIndex --这个就是行号
yingchenglangzi 2007-12-12
  • 打赏
  • 举报
回复
那这个id怎么传出来给 Label lb = (Label)(GridMain.Rows[id].FindControl("LabelID")) 使用呢?
北京的雾霾天 2007-12-12
  • 打赏
  • 举报
回复

protected void grdBooks_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.DataRow)
{
return;
}
LinkButton lbl= e.Row.FindControl("LabelID") as LinkButton;
if (lbl != null)
{
lbl.CommandArgument = e.Row.RowIndex.ToString();
}
}

protected void grdBooks_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "xxx" && e.CommandArgument != null)
{
int rowIndex = int.Parse(e.CommandArgument);
}
}
zj1989 2007-12-12
  • 打赏
  • 举报
回复
protected void MyGridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
int id = Convert.ToInt32(e.CommandArgument);
}
这样吗
p_space 2007-12-12
  • 打赏
  • 举报
回复
ls正解,用CommandArgument可以绑定一些需要的数据,如果于行有关系可以在RowDataBound时间中处理,如果只是简单的在数据库中读取,那么可以直接绑定
yingchenglangzi 2007-12-12
  • 打赏
  • 举报
回复
不会写,真不好意思
yingchenglangzi 2007-12-12
  • 打赏
  • 举报
回复
感觉 还是 不行 ,能否帮忙提供两行代码示例,谢谢了
hy_lihuan 2007-12-12
  • 打赏
  • 举报
回复
看来晚了,ls正确的
北京的雾霾天 2007-12-12
  • 打赏
  • 举报
回复
你可以在RowDataBound事件里通过e.Row.RowIndex来给控件的CommandArgument设置值。这样方便了在RowCommand事件里通过CommandArgument来得到所在的行号。
北京的雾霾天 2007-12-12
  • 打赏
  • 举报
回复
那你就使用CommandArgument 参数来记录行数。
zj1989 2007-12-12
  • 打赏
  • 举报
回复
dataview.DataKeys[e.Item.ItemIndex].ToString() 试一下
yingchenglangzi 2007-12-12
  • 打赏
  • 举报
回复
但是我现在写e.后,没有rowindex这个属性,是不是需要增加什么引用?
北京的雾霾天 2007-12-12
  • 打赏
  • 举报
回复
那你可以在RowCommand事件里来写啊,使用e.RowIndex就是行号了。
或者其它的事件里,查看一下参数e是否存在rowIndex,存在的话使用就是了。
yingchenglangzi 2007-12-12
  • 打赏
  • 举报
回复
不好意思,写错了,是gridview,我想获取当前操作的行号
北京的雾霾天 2007-12-12
  • 打赏
  • 举报
回复
dataview不是个类吗?怎么会有模板呢?
使用的是什么控件显示的数据呢?

62,244

社区成员

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

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

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

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