Forum
See question

Remover alguns botões da grid nos dossiers internos   

53 views
0
0

Bom dia,

O seguinte código apenas funciona para remover o botão para adicionar linhas, se utilizar outro ID BiGridArtAdd, BiGridOpenCatalog ou BiGridCopyFromXls, não funciona.

Precisava de remover esses botões. O cliente tem a versão Corporate, não dá para ser por javascript.

  1. Dim grid As MainformKoGrid = CType(mpage.ToTypeClass(Of Mainform).Conteudo.FindControl("bigrid"), MainformKoGrid)
  2. Dim button = (From b In grid.GridActionButtons Where b.ButtonId = "BiGridAddLine").FirstOrDefault
  3. If button IsNot Nothing Then
  4. grid.GridActionButtons.Remove(button)
  5. End If

 

Cumprimentos,

Márcio Seromenho

Faça login para poder traduzir
CS Web 
PHC
Marked as spam
Criado há 1 mês e 1 semana mrcioseromenho
m
mrcioseromenho Iniciante
2 answers
1
Private answer

Bom dia,

Os botões BiGridArtAdd, BiGridOpenCatalog e BiGridCopyFromXls não estão disponíveis na GridActionButtons, pelo que não podem ser removidos da mesma forma que o botão BiGridAddLine.

Nesse caso, a abordagem passa por remover os elementos no lado do cliente através de JavaScript via evento, por exemplo:

mPage.ClientScript.RegisterStartupScript(
GetType(Page),
"RemoveBiGridButtons",
"var idsToRemove = [´BiGridArtAdd´, ´BiGridOpenCatalog´, ´BiGridCopyFromXls´, ´BiGridAddDescricaoLonga´];" &
"var observer = new MutationObserver(function(mutations) {" &
" idsToRemove.forEach(function(id) {" &
" var el = document.getElementById(id);" &
" if (el) el.parentNode.removeChild(el);" &
" });" &
"});" &
"observer.observe(document.body, { childList: true, subtree: true });",
True)

 

Neste exemplo é utilizado um MutationObserver para verificar alterações ao DOM e remover os botões assim que estes sejam criados pela aplicação.

Esta abordagem é necessária porque estes botões não são expostos através da coleção GridActionButtons, ao contrário do botão BiGridAddLine.

Tendo em conta que o cliente possui a versão Corporate e não dispõe de JavaScript de utilizador, o código deverá ser aplicado através de um evento ApósOnInit para o ecrã boform.

Com os melhores cumprimentos

 

Esta resposta foi gerada pelo Cegid Pulse, com base na base na informação disponível em histórico.
Ajude-nos a melhorar esta funcionalidade:
• Se a resposta corresponde à sua questão, assinale-a com "Mark as best answer",
• Se a resposta estiver incorreta, dê-lhe um voto negativo e aguarde a resposta da comunidade.

 

Faça login para poder traduzir
Marked as spam
Criado há 1 mês e 1 semana cegidpulse
cegidpulse Cegid Pulse Most Valuable Professional
    1
    Private answer

    Boa tarde, foi ajustada a resposta do Pulse de maneira a ser possivel ter o comportamento desejado.

    Faça login para poder traduzir
    Marked as spam
    Criado há 4 semanas e 22 horas martimesteves
    m
    martimesteves Martim ESTEVES Responsiveness Member