title: Change Dynamically the BoundFields in a GridView
body: <p>I have a <code>GridView</code> inside a <code>UpdatePanel</code>. In some cases, I have to show different columns in this <code>GridView</code> so I need to change the <code>BoundFields</code> that are specified in my <code>aspx</code>.</p>
  
  <p>How can I change the <code>BoundFields</code> to make the <code>GridView</code> be filled for a different query and different fields ?</p>
  
  <p><strong>ASPX</strong></p>
  
  <pre><code>&lt;cc1:GridView ID="grdImoveis" CssClass="StyleGrid" Width="100%" runat="server" ShowHeader="false"
              AutoGenerateColumns="False" DataSourceID="dsGrid" BorderWidth="0px" GridLines="None"
              AllowPaging="True" EnableModelValidation="True" &gt;
              &lt;AlternatingRowStyle BackColor="White" CssClass="EstiloDalinhaAlternativaGrid" HorizontalAlign="Center" /&gt;
              &lt;RowStyle CssClass="EstiloDalinhaGrid" HorizontalAlign="Center" /&gt;
              &lt;Columns&gt;
                  &lt;asp:BoundField HeaderText="Nome" DataField="NomeCompleto" /&gt;
                  &lt;asp:BoundField HeaderText="Cargo" DataField="DescricaoCargo1" /&gt;
                  &lt;asp:BoundField HeaderText="Data Cadastro" DataField="DataHora" /&gt;
                  &lt;asp:TemplateField ControlStyle-CssClass="acoes_lista_imovel" HeaderText="Curso"&gt;
                      &lt;ItemTemplate&gt;
                          &lt;div class="acoes_lista_imovel"&gt;
                              &lt;%# montaIcones(Eval("Usuario_Id").ToString())%&gt;
                          &lt;/div&gt;
                      &lt;/ItemTemplate&gt;
                  &lt;/asp:TemplateField&gt;
              &lt;/Columns&gt;
          &lt;/cc1:GridView&gt;
  </code></pre>
  
  <p><strong>CODE BEHIND</strong></p>
  
  <pre><code>protected void btnSelecionarData_OnClick(object sender, EventArgs e)
      {            
          string select = string.Empty;
          select += "SELECT San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, San_Usuario.DescricaoCargo1, "
              + "CONVERT(varchar, San_Usuario.DataHora, 103) AS DataHora, San_UsuarioCurso.Cv, San_UsuarioCurso.Institucional, "
              + "San_UsuarioCurso.Copon, San_UsuarioCurso.ManualCaptacaoESistema, San_UsuarioCurso.PosturaProfissional, San_UsuarioCurso.Certificado "
              + "FROM San_Usuario "
              + "JOIN San_Credenciada "
              + "ON San_Usuario.Credenciada_Id = San_Credenciada.Credenciada_Id "
              + "JOIN San_UsuarioCurso "
              + "ON San_Usuario.Usuario_Id = San_UsuarioCurso.Usuario_Id "
              + "WHERE San_Usuario.Provisorio = 1 "
              + "AND San_Usuario.Excluido = 0 "
              + "AND San_UsuarioCurso.DataCurso = '" + this.DtBusca.Value.ToString() +"' "
              + "GROUP BY San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, "
              + "San_Usuario.DescricaoCargo1, San_Usuario.DataHora, San_UsuarioCurso.Cv, San_UsuarioCurso.Institucional, "
              + "San_UsuarioCurso.Copon, San_UsuarioCurso.ManualCaptacaoESistema, San_UsuarioCurso.PosturaProfissional, San_UsuarioCurso.Certificado "
              + "ORDER BY San_Usuario.DataHora ASC ";
  
          dsGrid.ConnectionString = c.Con;
          dsGrid.SelectCommand = select;
          dsGrid.Dispose();
  </code></pre>