Pergunta

Eu tenho uma página que exibe uma lista com um de elementos com um grande número de elementos, cada um dos quais possui uma propriedade booleana, representando um estado ativado e um estado desativado.

Preciso fornecer ao usuário um link para cada item da lista e o texto do link deve mostrar o status oposto (por isso, se o item estiver ativado, o texto do link deve exibir 'desativar').

Quando o usuário clica no link para um desativado, o texto do link correspondente para o item deve alterar para 'Ativar' (e vice -versa).

Eu gostaria de não recarregar toda a lista para cada clique, apenas o texto do próprio ActionLink, então minha pergunta é:

É possível atualizar apenas um link de ação quando o usuário clica no link, ou eu tenho lida com isso usando JavaScript personalizado?

Foi útil?

Solução

Até onde me lembro, você pode adicionar atributos HTML à tag "A", recém -nascendo uma classe anônima como o último param na maioria das sobrecargas.

No topo da minha cabeça, isso pode ser escrito como o seguinte:

Html.ActionLink("Name", "Action", "Controller", new { @class = 'updateId' });

(Você pode fazer isso com um ID que seria preferível a uma aula - se não apenas usar um nome de classe exclusivo para evitar atualizar vários itens.)

Em seguida, você pode usar o JavaScript para acessar a classe "UpdateId" e alterar o HTML interno.

No caso do jQuery:

$("a.updateId").html("NewName");

Outras dicas

Isso pode ser feito com um controle de usuário personalizado contido no elemento a ser atualizado. UMA A redação da solução pode ser encontrada aqui. Nenhum script personalizado do lado do cliente é necessário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top