none
Impedir a deleção de uma linha RRS feed

  • Pergunta

  • Eu utilizo objectdatasource, e tenho um label chamado lblstatus, utilizo javascript para fazer a confirmação do delete.
    Bom  é o seguinte:
    eu gosrtaria que quando o texto do lblstatus fosse diferente de "Em Elaboração" o usuário ao clicar no botão excluir do grid não pudesse executar a ação!
    tem como?

    meu excluir no grid esta assim:
     <asp:TemplateField>
                                       <ItemStyle CssClass="colunaIconOp" />
                                       <HeaderStyle CssClass="colunaIconOp" />
                                       <ItemTemplate>
                                           <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete"
                                               Text="<img src='../img/icon_excluir.gif' style='cursor:hand' border=0>"  OnClientClick="BLOCKED SCRIPTreturn ConfirmaExclusao();"></asp:LinkButton>
                                       </ItemTemplate>
                                   </asp:TemplateField>

    []'s
    sexta-feira, 21 de setembro de 2007 14:07

Todas as Respostas

  • Existe um solução, você poderia usar o envento  RowDataBound do grid e verificar se a coluna esta no estatus que você quer e adicona la o text ou o botão.

    Algo mais ou meno assim.

     

    Code Snippet

    Exemplo

    :

    If e.Row.RowType = DataControlRowType.DataRow Then
                Dim Ativo As Boolean = DirectCast(e.Row.DataItem, DataRowView).Item("BLL_STATUS")
                If Ativo = False Then
                    e.Row.Cells(3).Text = "Inativo"
                Else
                    e.Row.Cells(3).Text = "Ativo"
                End If
            End If

     

     

    sexta-feira, 21 de setembro de 2007 17:25
  • Bom a questão é que este status é fixo, e não esta no grid, esta em outro lugar na tela.
    isso quer dizer que vale p/ o grid todo, quando a tela tem status= em elaboração, qualquer linha do grid podera ser modificada e quando o status for encerrada, nenhuma linha podera ser modifica, so vizualizada. para a questao de selected index eu consegui, mas para apagar nao funcionaou... Sad
    [] s
    sexta-feira, 21 de setembro de 2007 19:07
  •  

    Então você pode fazer o seguinte.

    Você quando entrar na pagina ou quando carregar o grid você verifica qual o valor desse status e  se o valor for para na exibir ou não poder deletar você pode ocultar a coluna que e responsavel para apagar os registros se não ela exibi..

    E ate mas simples

    sexta-feira, 21 de setembro de 2007 20:31
  • legal! como eu posso fazer isso levando em conta que o meu delete é da forma que mostrei acima?
    sexta-feira, 21 de setembro de 2007 20:59
  •  

    Pode ser feito desta maneira.

    Carrega o Seu grid e Depois faz o seguinte

    Code Snippet

    if seuLabel.text="Em Elaboração" then

    grid.Colums[0].visible = false
     
    else

    grid.Colums[0].visible = true

    end if

    'lembrando que você tem que ver indice (qual o numero da coluna) para poder ocultar a certa

     

     

     

    segunda-feira, 24 de setembro de 2007 12:54