从 RowDatBound 方法访问 Gridview 中的 UserControl

Access a UserControl in a Gridview from the RowDatBound method

我有一个 gridview,在项目模板中我有一个用户控件,它在回发时失去了它的价值。我希望能够从后面的 c# 代码中的 RowDataBound 方法访问控件并重新分配 CandidateID 值

网格视图控件

<asp:TemplateField>
    <ItemTemplate>

        <Controls:LikeButton ID="CandidateLikeButton" runat="server" LikeType="Candidate"
           LikedObjectID='<%# Bind("CandidateID") %>' />

    </ItemTemplate>
</asp:TemplateField>

我该怎么做?

您可以像访问任何其他控件一样使用 FindControl 访问它,并将其转换回它的类型。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        LikeButton LB = e.Row.FindControl("CandidateLikeButton") as LikeButton;

        LB.CandidateID = 1234;
    }
}