Duplo Clique em uma Listbox Asp.net - Delboni TI

About us

test banner

Breaking

Post Top Ad

Responsive Ads Here

Post Top Ad

Responsive Ads Here

quarta-feira, 29 de janeiro de 2014

Duplo Clique em uma Listbox Asp.net

Recebi uma demanda recentemente para que fosse criada a funcionalidade de dar um duplo clique em uma listbox, e esse conteúdo clicado ir para o Listbox ao lado.


Como podem notar, existem botões que movimentam os itens dessas duas listbox.
Em uma aplicação desktop, o listbox tem uma propriedade de duplo clique, porém em webapplication, não.

Lembrando que eu poderia dar uma solução de diversas maneiras, mas optei pela mais simples, fiz com que no duplo clique da listbox, o javascript faria o postback e no load da pagina eu faria a verificação, chamando o método do botão.

Detalhando:

No asp.net:


<asp:ListBox ID="listBoxDeAnimais" CssClass="cellDataEntry" runat="server" Height="180px" Width="100%" SelectionMode="Multiple" TabIndex="3" AutoPostBack="True"       ondblclick="MetodoIncluir(this);"></asp:ListBox>
 
 
Percebam que "ondbclick" é a ação que de dois cliques vai executar uma função em JavaScript, chamada MetodoIncluir(), passando a propria listbox para ela.
 
No JavaScript: 
 
function MetodoIncluir(list) {
            __doPostBack('listBoxDeAnimais', list.value);
        }

 
A função JavaScript MetodoIncluir, fará um postback da pagina, passando como parametro, uma string com o nome que eu quiser, nesse caso passei o nome da listbox, e um valor qualquer, passei list.value, que nesse caso, é o selectedvalue da listbox(para entender melhor).
 
E para finalizar no PageLoad da pagina, no .cs eu fiz a seguinte codigo:
 
string parameter = Request["__EVENTARGUMENT"];
string target = Request["__EVENTTARGET"];
if (!string.IsNullOrEmpty(parameter))
{
   if (target == "listBoxDeAnimais")
          btnIncluir_Click(null, null);
}

 
Para a variável "parameter" eu faço um request pelo eventargument, que é o valor passado pela função JavaScript MetodoIncluir (list.value), e para a variável "target" faço um request de eventargument, que é a string passada pela mesma função.
 
Faço uma verificação se parameter está vazio, pois, se não houver o 2 cliques, null é passado para "parameter" no PageLoad. E depois, verifico se "target" tem a string igual a que eu quero, se sim, chamo o método do botão de incluir que já tinha no .cs.
 
Solução bem simples, e rápida com reaproveitamento de código.
 
Em breve postarei outras possíveis soluções de 2 cliques na listbox.
 
 




 

Nenhum comentário:

Postar um comentário

Post Top Ad

Responsive Ads Here