title: GridView RowDataBound event handler does not find GridView cells content
body: <p>I have the following <code>GridView</code>, which has as <code>DataSource</code> a <code>List&lt;T&gt;</code>:</p>
  
  <pre><code>&lt;asp:GridView ID="gvDownloads" UseAccessibleHeader="False"
                AutoGenerateColumns="False" runat="server" PageSize="10" AllowPaging="true" 
                CellPadding="4" CellSpacing="1" GridLines="None" DataKeyNames="productid"&gt;
               &lt;EmptyDataTemplate&gt;
                  No licenses found 
               &lt;/EmptyDataTemplate&gt;
               &lt;Columns&gt;
                  &lt;asp:TemplateField HeaderText="Id" &gt;
                     &lt;ItemTemplate&gt;
                         &lt;%# Eval("ProductId")%&gt;
                     &lt;/ItemTemplate&gt;
                  &lt;/asp:TemplateField&gt; 
                  &lt;asp:TemplateField HeaderText="Product Name"&gt;
                     &lt;ItemTemplate&gt;
                         &lt;%# Eval("ProductName")%&gt;
                     &lt;/ItemTemplate&gt;
                  &lt;/asp:TemplateField&gt;
                  &lt;asp:TemplateField HeaderText="Stock Code"&gt;
                     &lt;ItemTemplate&gt;
                         &lt;%# Eval("StockCode")%&gt;
                     &lt;/ItemTemplate&gt;
                  &lt;/asp:TemplateField&gt;
              &lt;/Columns&gt;
  &lt;/asp:GridView&gt;
  </code></pre>
  
  <p>Which renders correctly and with the proper values. </p>
  
  <p>Now, I would like to modify on the fly the field <strong>StockCode</strong> and in order to do so I have in my code behind:</p>
  
  <pre><code>Sub gvDownloads_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvDownlads.RowDataBound
  
      If e.Row.RowType = DataControlRowType.DataRow Then
  
           e.Row.Cells(2).Text = StockCodeConverter.Convert(e.Row.Cells(2).Text)
  
      End If
  End Sub
  </code></pre>
  
  <p>But the data cells corresponding to <strong>StockCode</strong> are empty. Now I tried to debug and for some reason the code finds just the value of the header row. The values of the other rows are <code>string.Empty</code> or &amp;nsbp. Might it depend on the List as DataSource? </p>