none
Botões externos para ASPxGridView com chaves primaria composta de duas chaves RRS feed

  • Pergunta

  • Preciso fazer uma tela que tenha botões de imagem (imagebutton) responsáveis por realizar as tarefas de inserir, alterar, salvar, deletar dados em uma tabela que esta sendo exibida no ASPxGridView. Porém só consigo inserir pois para as outras tarefas é necessário encontrar a chave primaria do registro e como ela composta dos dois primeiros campos da tabela não consigo seleciona-la.

    Podem me ajudar?

    sábado, 3 de novembro de 2012 12:22

Respostas

  • Olá,

    Uma forma simples de fazer é você ter apenas o botão Salvar fora do seu grid.

    Para as ações demais ações você pode criar colunas do tipo linkButton.

    Para isso você precisa do evento RowCommand no seu grid:

    OnRowCommand="seuGrid_RowCommand"

    no Seu grid crie uma coluna pra sua ação, por exemplo "deletar":

    .aspx

    <asp:TemplateField HeaderText="Excluir">
        <ItemStyle HorizontalAlign="Center" />
             <ItemTemplate>
                   <asp:LinkButton runat="server" ID="lkbExcluir" Text="Excluir"CommandName="Excluir" OnClientClick="return confirm('Confirma exclusão do registro?');" CausesValidation="false"><img src="images/seuIcone_excluir.png"/>
                   </asp:LinkButton>
              </ItemTemplate>
    </asp:TemplateField>

    Depois é só implentar seu evento:

    .cs

     protected void seuGrid_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName.Equals("Excluir") && !string.IsNullOrEmpty(e.CommandArgument.ToString()))
                {
                    //Deleta      
                }
            }


    Thais Oliveira

    Analista Desenvolvedora

    • Marcado como Resposta Wah Teixeira terça-feira, 9 de abril de 2013 19:13
    segunda-feira, 19 de novembro de 2012 13:24

Todas as Respostas

  • Olá,

    Uma forma simples de fazer é você ter apenas o botão Salvar fora do seu grid.

    Para as ações demais ações você pode criar colunas do tipo linkButton.

    Para isso você precisa do evento RowCommand no seu grid:

    OnRowCommand="seuGrid_RowCommand"

    no Seu grid crie uma coluna pra sua ação, por exemplo "deletar":

    .aspx

    <asp:TemplateField HeaderText="Excluir">
        <ItemStyle HorizontalAlign="Center" />
             <ItemTemplate>
                   <asp:LinkButton runat="server" ID="lkbExcluir" Text="Excluir"CommandName="Excluir" OnClientClick="return confirm('Confirma exclusão do registro?');" CausesValidation="false"><img src="images/seuIcone_excluir.png"/>
                   </asp:LinkButton>
              </ItemTemplate>
    </asp:TemplateField>

    Depois é só implentar seu evento:

    .cs

     protected void seuGrid_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName.Equals("Excluir") && !string.IsNullOrEmpty(e.CommandArgument.ToString()))
                {
                    //Deleta      
                }
            }


    Thais Oliveira

    Analista Desenvolvedora

    • Marcado como Resposta Wah Teixeira terça-feira, 9 de abril de 2013 19:13
    segunda-feira, 19 de novembro de 2012 13:24
  • Muito  obrigada Thais! Demorei mas voltei para ver a solução sugerida. 


    terça-feira, 9 de abril de 2013 19:14