为什么hyperlinkfield获取不到数据?(asp.net)

Why can't hyperlinkfield get the data?(asp.net)

正在开发:asp.net Web 表单 (4.5)

    <Columns>
        <asp:DynamicField DataField="student" />
        <%--<asp:HyperLinkField DataTextField="idNum" HeaderText="idNum" DataNavigateUrlFields="idNum"  />--%>
        <asp:BoundField DataField="idNum" HeaderText="idNum" />
    </Columns>

当我使用boundfield时,我可以通过数据绑定来使用数据。

    protected void soGrid2_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        using (Action act = new Action())
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {

                string idNum= e.Row.Cells[2].Text;
            }
        }
    }

同上。但是如果我像注释代码一样使用 HyperLinkField,数据看起来很好,但我无法从 rowDataBound 获取数据。有人知道这是为什么吗?以及如何使其成为超链接字段?

如果我没记错的话 HyperlinkField 在该单元格中放置了 HyperLink control

protected void soGrid2_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var idNumLink = (HyperLink) e.Row.Cells[2].Controls[0];
        string idNum= idNumLink.Text;
    }
}

请注意,我使用 e.Row.Cells[2] 因为您已经使用过它。但在您的示例中它是第二列,因此您必须使用 e.Row.Cells[1].