none
Visualizar o editItem Template do gridView RRS feed

  • Pergunta

  • Bom dia amigos.

    Estou fazendo um aplicativo que terá como base um gridview para apresentação de dados.

    Estou usando Template Fields e fazendo td via código sem wizard.

    Quando edito os templates fields, dentro de "ItemTemplateField" eu coloco meu label e dentro "EditItemTemplate" coloco um textbox.

    A questão é a seguinte: Se eu colocar um botão de "edit" em cada linha, qual seria o comando (deste botão) para poder visualizar o gridview(a linha em questão) no estado edit?

    Desde já agradeço.

    Abraços.

    quinta-feira, 28 de maio de 2009 15:48

Todas as Respostas

  • Buenas Eduardo,

    o comando para o Edit é no CommandName, dae para abilitar os textbox do edit tu bota como propriedade do botão de editar.  CommandName="Edit"

    Despois para salvar a edição tu coloca o botão de ok como: CommandName="Update"


    Vou colar um código de exemplo caso não tenha ficado muito claro..

    <

     

    ItemTemplate>
    <asp:ImageButton ID="ImageButton20" runat="server" CausesValidation="False" CommandName="Edit" ImageUrl="~/Imagens/Icons/edit.gif" Text="Select" />

    e para o ok:

    <EditItemTemplate>
    <asp:ImageButton ID="ImageButton15" runat="server" CausesValidation="False" CommandName="Update" ImageUrl="~/Imagens/Icons/update.gif" Text="Select" />

    E se você quiser cancelar a operação de editar o CommandName é CommandName="Cancel"

    Espero ter ajudado!
    Abraços
    quinta-feira, 28 de maio de 2009 16:28
  • Ok, vou testar Vitor.

    Qquer coisa posto aqui.

    Vlw, muito obrigado bro.

    quinta-feira, 28 de maio de 2009 17:02
  • Então Vitor, fiz o seguinte:

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    
                <Columns>
    
                    <asp:TemplateField HeaderText="Manutenção" ShowHeader="False">
    
                        <EditItemTemplate>
    
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
    
                                CommandName="Update" Text="Update"></asp:LinkButton>
    
                            &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
    
                                CommandName="Cancel" Text="Cancel"></asp:LinkButton>
    
                        </EditItemTemplate>
    
                        <ItemTemplate>
    
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
    
                                CommandName="Edit" Text="Edit"></asp:LinkButton>
    
                        </ItemTemplate>
    
                        <ItemStyle HorizontalAlign="Center" />
    
                    </asp:TemplateField>
    
                    <asp:TemplateField HeaderText="E.M"></asp:TemplateField>
    
                    <asp:TemplateField HeaderText="S.M"></asp:TemplateField>
    
                    <asp:TemplateField HeaderText="E.T"></asp:TemplateField>
    
                    <asp:TemplateField HeaderText="S.T"></asp:TemplateField>
    
                </Columns>
    
            </asp:GridView>
    
    Eu populo esse gridview via código com uma DataTable, até aí sem problema.

    Entretanto, quando clico no botão "Edit" recebo a seguinte mensagem:

    The GridView 'GridView1' fired event RowEditing which wasn't handled

    Tenho q gerar todos aqueles comandos passando parâmetros?

    Em resumo, eu só preciso visualizar o gridview em modo edit quando clicar determinado botão.
    quinta-feira, 28 de maio de 2009 19:11
  • Cara, acho que eu sei o que é...

    Ele nao tá achando o UPDATE do sql...

    Achei esse tutorialzinho aqui, dá uma olhada
    http://www.linhadecodigo.com.br/Artigo.aspx?id=788


    como tu tá fazendo pra dizer os comandos sql?
    ele nao deve tá reconhecendo

    ve se o artigo te ajuda, se não fala mais aí pra tentarmos arrumar!

    Abraços!
    sexta-feira, 29 de maio de 2009 04:10
  • Oi,

    Vamos por partes,

    "Estou usando template fields e fazendo td via código, sem wizard"

    Quer dizer : Está fazendo da forma errada. O ambiente foi criado para fornecer produtividade sem gerar perdas e é isso que temos ao usar os wizards corretamente : produtividade sem perdas. Portanto essa sua tentativa está sem objetivo.

    "A questão é a seguinte: Se eu colocar um botão de "edit" em cada linha, qual seria o comando (deste botão) para poder visualizar o gridview(a linha em questão) no estado edit?"

    Todo o ambiente do ASP.NET foi criado de forma integrada para fazer o trabalho para nós. Por isso que os botões possuem uma propriedade chamada CommandName que se você preencher com a palavra chave "Edit", vai ser reconhecido pela grid e a linha entrará em edição.

    Quer fazer sem isso ?

    Então no click no botão altere o valor da propriedade editItemIndex da gridview. Porém como vai saber qual dos botões edit foram clicados ? Poderia fazer um databind no botão edit com a propriedade commandArguments ligada a uma chave primária da tabela, mas você provavelmente vê o databind como "wizard", nesse caso precisará programar o rowdatabound para preencher o commandarguments de cada um dos botões como neste exemplo : http://www.bufaloinfo.com.br/dicas.aspx?cod=779 e desta forma poder recuperar a linha no click do botão.

    Resultado : Aquilo que a ferramenta possibilita que seja feito em 2 minutos você vai levar meia hora para fazer, sem ter ganho algum com esta perda de tempo adicional. Uma opção assim por "não usar wizard" apenas leva ao aprendizado de como não usar a ferramenta.

    []'s

    Dennes
    *Treinamento de ASP.NET 3.5 c/Visual Studio 2008 em SP - Apenas R$ 70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp
    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
    sexta-feira, 29 de maio de 2009 04:47
  • Oi,

    "popula a gridview por código com um datatable"

    Utilize um objectdatasource para resolver o problema, ele foi criado para isso.

    []'s

    Dennes
    *Treinamento de ASP.NET 3.5 c/Visual Studio 2008 em SP - Apenas R$ 70,88 - http://www.bufaloinfo.com.br/cursos/aspnet2.asp
    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
    sexta-feira, 29 de maio de 2009 04:49
  • Pessoal, perdão pela demora em responder.

    Dennes,

    Estou fazendo via código não por vontade própria, é q não encontrei uma lógica diferente para fazer o q necessito, o q está descrito neste link:

    http://social.msdn.microsoft.com/Forums/pt-BR/arquiteturapt/thread/e853e7be-7fc0-4c24-84cb-00b75830f92c

    Se puder dar uma olhada, agradeço desde já.

    Obrigado pela dica Vitor Consalter, estou vendo aqui o q posso fazer.


    Att.,

    Eduardo.
    terça-feira, 9 de junho de 2009 18:24