如何获取GridView行的索引

10
如何获取表格视图中正在进行后台处理的子控件的行索引。我知道获取导致后台处理的控件并查找其父容器的方式,该方式将返回网格视图行,然后找到其索引。我想在RowDataBound事件中检查选定行的索引并对其进行格式化。是否有任何其他属性或设置可以直接发出网格视图中任何子控件后台处理的选定索引?
编辑:
例如,如果一行中有下拉列表,并且在GridView中有某些行。然后,我希望获得由于该行中的下拉列表而发生后台处理的GridView行索引。

你想在获取到该值的那个点上做什么?你想从GridView中删除该行吗? - शेखर
根据该索引,我想要格式化(设计)该行,并更改该行下方的数据源。 - Rajaram Shelar
1个回答

19
您可以通过RowIndex属性获取RowDataBound中行的索引:
protected void gridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        int index = e.Row.RowIndex;
    }
}

您可以通过以下方式获取GridView中任何子控件的索引:

  • childControl.NamingContainer =>
  • GridViewRow =>
  • RowIndex

例如,在DropDownList.SelectedIndexChanged事件中:

protected void DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
    DropDownList ddl = (DropDownList) sender;
    GridViewRow row  = (GridViewRow)  ddl.NamingContainer;
    int index        = row.RowIndex;
}

最后:既然你提到了"检查选定行索引",如果你实际上正在寻找GridView本身的选定行索引,则有一个专门用于此的属性:


我想要导致 postback 的行的索引。 - Rajaram Shelar
这是一个在ASP.NET的RowCommand事件中查找行索引的链接:https://dev59.com/-Gw15IYBdhLWcg3wmc8J - शेखर
根据该索引,我想要格式化(设计)该行,并更改该行下方的数据源。 - Rajaram Shelar
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/19574/discussion-between-eraj-and-tim-schmelter - Rajaram Shelar
@dran:我删除了我的评论,以清除这个问题中的不必要的“噪音”。也许你也想删掉你的评论。 - Tim Schmelter
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接