Uma das técnicas que tem mais sido usadas é a edição in-line do gridview e o comum de se encontrar é utilizar a última linha da gridview com os campos para inserção, porém se você utilizar o commandfield para adicionar os linkbutton pode dar um pouco de dor de cabeça para conseguir deixar um layout legal.

O resultado que esperamos conseguir é algo nesse estilo:

aspx

        <asp:GridView 
            ID="grid1" 
            runat="server"                
            ShowFooter="true"   
            OnRowDataBound="gvRow"                                         
        >
        <Columns>
              <asp:CommandField 
                    HeaderText="Opções" 
                    EditText="Editar"                                                            
                    UpdateText="Salvar"
                    ShowEditButton="true"
                    CancelText="Cancelar"
                    ShowCancelButton="true"
                    DeleteText="Excluir"
                    ShowDeleteButton="true"                                           
                    FooterText="Inserir"                                                    
            /> 
        protected void gvRow(object sender, GridViewRowEventArgs e)
        {
           //Verifica se é o rodapé
            if (e.Row.RowType.Equals(DataControlRowType.Footer))
            {
                // Deixando o linkbutton centralizado
                e.Row.Cells[0].Style.Add("text-align", "center");
                // Instanciando o linkbutton
                LinkButton lb = new LinkButton();
                lb.Text = "Inserir";
                // Registrando o evento
                lb.Click += new EventHandler(gvSistemasInserir);             
                // Adicionando a celula
                e.Row.Cells[0].Controls.Add(lb);
            }
        }

Bem, o que basicamente fizemos foi no evento de RowDataBound, verificar quando se está no rodapé e adicionar na primeira célula o link de Inserir, é um método meio “porco” mas funciona e no momento meu lema é “Funcionou, tá certo”

Anúncios