我有一个使用select的GridView。我想获取选择了哪一行的RegistrantId。我尝试了很多方法而没有运气。
C#
GridViewRow row = GridView1.SelectedRow;
if ((row != null))
{
string registrantId = GridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
PnlEdit.Visible = true;
}
我需要弄明白要放在string registrantId =
。它需要等于该行中RegistrantId的值。
例如,上面的这个尝试给了我RowIndex
的编译错误,指出“EventArgs不包含RowIndex的定义。”
答案 0 :(得分:1)
您可以像这样找到RowIndex:
string registrantId = GridView1.DataKeys[e.RowIndex]
这假设您在gridview
中设置了DataKeyNames属性<asp:GridView runat="server" ID="GridView1" DataKeyNames="RegistrantId" >
此外,如果此方法由事件处理程序触发,您可能希望将空检查条件更改为:
protected void GridView1_RowSelecting(object sender, GridViewSelectEventArgs e)
{
var registrantId = GridView1.DataKeys[e.RowIndex];
if(registrantId != null)
{
PnlEdit.Visible = true;
}
}
(您知道该行存在是因为它已被选中,并且该选择是导致事件触发的原因。空检查确认您能够从该行获取registrantId)