Pergunta

Eu tenho um parâmetro de string de consulta "showall" no URL, o parâmetro está sendo adicionado dinamicamente quando o botão "Mostrar tudo/Mostrar páginas" é clicado.

Desejo poder alternar o valor do parâmetro da string de consulta "showall", dependendo do usuário clicar no botão "Mostrar tudo/Mostrar páginas".

Estou fazendo alguns "se" aninhados e string.Replace() na URL, existe uma maneira melhor?

Todas as manipulações são feitas no servidor.

p.s. Toran, boa sugestão, porém TENHO QUE USAR O PARÂMETRO DE URL devido a alguns outros problemas.

Foi útil?

Solução

Apenas para elaborar a resposta de Toran:

Usar:
<asp:HiddenField ID="ShowAll" Value="False" runat="server" />

Para alternar seu estado:

protected void ToggleState(object sender, EventArgs e)
{
    //parse string as boolean, invert, and convert back to string
    ShowAll.Value = (!Boolean.Parse(ShowAll.Value)).ToString();
}

Outras dicas

Outra alternativa suja poderia ser apenas usar uma entrada oculta e ativá-la/desativá-la em vez de manipular o URL.

Seria muito trabalhoso apenas ter o valor codificado na URL (eu sei que não é muito bom) com um valor padrão ou verdadeiro, então basta ter

booleanVar = !booleanVar;

executado em cada carregamento de página?

Pelo menos isso afastaria a necessidade de ifs aninhados para manipular a URL.

Não tenho certeza com base na pergunta, mas não é aqui que Manipuladores HTTP veio ao resgate?Você não deveria lidar com a alteração da variável no objeto antes da renderização da página neste caso?

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