none
Inserir nova linha em gridview RRS feed

  • Pergunta

  • Pessoal!

    Recorro voces com uma questão...

    seguinte..

    tenho minha aplicação onde é pesquisados dados dos dependentes de um funcionário, e se por ventura ele nao possuir dependentes devo criar a rotina para inclusão.

    o aspx do grid de dependentes, esta resumido apenas para exemplo...

            <asp:GridView ID="GridView1" runat="server">
              <EmptyDataTemplate>
                <table >
                  <tr>
                    <td style="text-align: left" class="depRG">
                      <asp:Label ID="lblRG" runat="server" Text="RG:" style="text-align: left" ></asp:Label>
                      <asp:TextBox ID="txtRG" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "RG")%>'
                        BorderWidth="0" Font-Size="7pt" Width="140px" MaxLength="13" ></asp:TextBox></td>
                    <td style="text-align: left" class="depOrgao">
                      <asp:Label ID="lblOrgao" runat="server" Text="Orgão emissor:" style="text-align: left" ></asp:Label>
                      <asp:TextBox ID="txtOrgao" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "SIGLA_ORGAO_EMISSOR")%> '
                        BorderWidth="0" Font-Size="7pt" Width="60px" MaxLength="10" ></asp:TextBox></td>
                    <td style="text-align: left" class="depCPF">
                      <asp:Label ID="lblCPF" runat="server" Text="CPF:" style="text-align: left" ></asp:Label>
                      <asp:TextBox ID="txtCPF" runat="server" Text = ' <%# DataBinder.Eval(Container.DataItem, "CPF")%>'
                        BorderWidth="0" Font-Size="7pt" Width="140px" MaxLength="15" ></asp:TextBox></td>
                    <td style="text-align: left" class="depPIS">
                      <asp:Label ID="lblPIS" runat="server" Text="PIS/PASEP:" style="text-align: left" ></asp:Label>
                      <asp:TextBox ID="txtPIS" runat="server" Text = ' <%# DataBinder.Eval(Container.DataItem, "PIS")%> '
                        BorderWidth="0" Font-Size="7pt" Width="145px" MaxLength="30" ></asp:TextBox></td>
                  </tr>
                </table>
    
              </EmptyDataTemplate>
            </asp:GridView>
    

    o metodo para poulação deste grid é o seguinte:

         protected void montaGridNovos()
         {
           wsgrh.wsGrh RH = new wsgrh.wsGrh();
           DataTable dt = RH.DTDependentes(empresaLocal, matriculaLocal);
           int cont = dt.Rows.Count;
    
           if (cont == 0)
           {
             // Cria um novo DataTable.
             DataTable dtNovo = new DataTable();
    
             // Adiciona colunas ao DataTable.
             dtNovo.Columns.Add("RG", typeof(string));
             dtNovo.Columns.Add("SIGLA_ORGAO_EMISSOR", typeof(string));
             dtNovo.Columns.Add("CPF", typeof(string));
             dtNovo.Columns.Add("PIS", typeof(string));
    
    
             // Adiciona os itens.
             foreach (DataRow linha in dt.Rows)
             {
               // Adiciona nova linha para o DataTable.
               DataRow dr = dtNovo.NewRow();
    
               dr["RG"] = "";
               dr["SIGLA_ORGAO_EMISSOR"] = "";
               dr["CPF"] = "";
               dr["PIS"] = "";
    
               // Adiciona linha ao DataTable.
               dtNovo.Rows.Add(dr);
             }
    
             GridView1.DataSource = dtNovo;
    
             GridView1.DataBind();
           }
           else
           {
    
    
           }
         }
    

    ai esta minha pergunta...

    este codigo adiciona uma linha em branco...  então, quero criar um botão ou qualquer outra coisa que insira mais linhas em branco...

    espero que me tenha feito aentender, e desde ja agradeço!!!

     


    Att. Cléber
    • Movido AndreAlvesLima quinta-feira, 31 de março de 2011 16:49 (De:.NET Development - Geral)
    sexta-feira, 18 de março de 2011 21:00

Respostas

  • Da mesma forma que voce popula o seu Datatable, voce pode inserir itens nele.

    a questão é. Ou voce refaz todo o DataTable e insere mais itens ou guarda o DataTable em ViewState ou Session ou Cache

    mas no final, voce terá que dar um Bind no seu Grid sempre que alterá-lo


    Caio Vitullo
    • Sugerido como Resposta Luiz Estevam sexta-feira, 25 de março de 2011 01:01
    • Marcado como Resposta Cléber_Poa_RS sexta-feira, 15 de abril de 2011 18:27
    domingo, 20 de março de 2011 15:23

Todas as Respostas