C# Can';无法读取GridView中的标签值

C# Can';无法读取GridView中的标签值,c#,gridview,null,label,C#,Gridview,Null,Label,我在这里读了很多帖子寻找答案。但无论我做什么,我的标签总是返回一个空值 我可以很好地填充它并在那个时候读取它,但是当我尝试读取标签来填充DB时,它总是空的 aspx代码: <asp:TemplateField HeaderText="TOTAL YIELD" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="130"> <EditItemTemplate> <asp:Label ID="lb_Tot

我在这里读了很多帖子寻找答案。但无论我做什么,我的标签总是返回一个空值

我可以很好地填充它并在那个时候读取它,但是当我尝试读取标签来填充DB时,它总是空的

aspx代码:

<asp:TemplateField HeaderText="TOTAL YIELD" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="130">
  <EditItemTemplate>
   <asp:Label ID="lb_TotalYield" runat="server" ></asp:Label>
  </EditItemTemplate>
</asp:TemplateField>
以下是我如何设置标签的完整信息:

myGridView.SelectedRow.Cells[4].Text = myTotalYield;
我试过做gv_RowDataBound,但它似乎从未被调用过

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (myGridView.EditIndex == e.Row.RowIndex &&
      e.Row.RowType == DataControlRowType.DataRow)
   {
      Label mylabel = (Label)e.Row.FindControl("lb_TotalYield");
      mylabel.DataBind();
   }
}  

当第二个示例中的代码正在执行时,您确定处于编辑模式吗?我相信只有在编辑特定行时,标签才会出现,因为您在EditItemTemplate中有它。这可能只是一个输入错误,但您在第一个FindControl行中使用的是“lb_TotalValue”而不是“lb_TotalYield”?如何判断我是否处于“编辑”模式?@Melanie-是的,这是一个剪切/粘贴错误。
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (myGridView.EditIndex == e.Row.RowIndex &&
      e.Row.RowType == DataControlRowType.DataRow)
   {
      Label mylabel = (Label)e.Row.FindControl("lb_TotalYield");
      mylabel.DataBind();
   }
}