/ / stop setting onclick event for asp: LinkButton se nenhum evento OnClick foi definido explicitamente - c #, asp.net

parar de definir o evento onclick para asp: LinkButton se nenhum evento OnClick foi definido explicitamente - c #, asp.net

Como faço para definir uma configuração padrão para que, se eu fizernão definir um OnClick (ou seja, o atributo asp.net OnClick) explicitamente para uma tag asp: LinkButton, ele não renderizará um atributo onclick (atributo html para javascript) do lado do cliente? Por padrão, o asp.net adiciona um onclick = "doPostBack ...." para o LinkButton.

Caso de uso:

Há uma tag LinkButton na página. Para esta página, se o usuário tiver um amigo, eu só quero executar o código do lado do cliente se o botão for clicado e, por qualquer motivo, não desejar fazer uma postagem de volta. Se o usuário tiver mais de um amigo, desejo um clique para acionar uma postagem.

Soluções que incluem o seguinte não são úteis:

  1. Usando qualquer Ajaxtoolkit asp.net
  2. Alternar dinamicamente o tipo de controle (ou seja, se amigos == 1 usam um asp: Hyperlink) -Eu quero evitar isso porque não é escalável. Pode haver muitos casos em que eu quero uma tag asp: Link para fazer uma postagem ou não, dependendo do contexto do usuário ou dos atributos do usuário

  3. Usando OnClientClick (estou usando jQuery gostaria de evitar isso)

Solução que seria útil se possível:

Se eu pudesse ver no lado do servidor em tempo de execução se um evento OnClick foi explicitamente definido em uma tag asp: LinkButton, isso também resolveria o meu problema. alguma ideia?

Respostas:

0 para resposta № 1

Que tal, em vez de alternar dinamicamente os controles (como você mencionou é uma solução que você não deseja), você pode sempre use um asp:HyperLink e definir o NavigateUrl para redirecionar sua página para si mesma com uma string de consulta de algum tipo, indicando o que foi clicado.

Se você não deseja que a postagem aconteça, basta deixar o NavigateUrl propriedade em branco.

Obviamente, isso será inútil se o restante da página depender do ViewState e tal.


0 para resposta № 2

http://forums.asp.net/t/1129106.aspx

Este link explica como ver o lado do servidor em tempo de execução se um evento OnClick foi definido explicitamente usando reflexão