Precisa de uma alça de postagem de um clicado controlo de hiperligação dinâmica em ajax

votos
2

O cenário ... Eu tenho uma lista de controles de hiperlink dinâmicos em um painel ajax que ligar diretamente para um documento do Word localizado em um compartilhamento. Ao clicar em qualquer link abre lado do cliente WORD (I definir a associação de arquivo para fazer isso, então o navegador IE não tentar abri-lo em seu lugar).

LinkButtons não vai funcionar porque ele não faz um link direto para o doc do navegador e eu não quero automação servidor ou ActiveX, desde que eu quero cada cliente para abrir o doc usando sua própria caixa como se tivessem simplesmente clicado no próprio documento.

Mas eu preciso mudar uma imagem em um controle de imagem, uma vez que você clicou no link. Em outras palavras, eu preciso do link para se sentar em cima de um controle que faz com que uma nova postagem para que eu possa chegar ao ID controles de postagem e fazer minha coisa. Eu também estou tentando evitar scripting do lado do cliente que eu tenho certeza que pode haver uma maneira complicada de fazer isso.

Aqui está o código no loop que cria o vínculo dinâmico. Comecei com apenas o controle de hiperlink, então este código está mexendo com a adição de uma hiperligação para um rótulo, é por isso que ele está mostrando como ela é:

Label lblWordLink = new Label();
HyperLink hrefLetter = new HyperLink();
hrefLetter.Text = items.letterName;                
hrefLetter.NavigateUrl = folderForPackageLetters + items.letterName + wordDocExtension;
hrefLetter.ID = standardLettersHref_ + items.letterName;
lblWordLink.Text = <a href=' + hrefLetter.NavigateUrl.ToString() + '> + items.letterName + </a> ;                
tRow.Cells[1].Controls.Add(lblWordLink);

Eu estou procurando uma maneira de deixar o link abrir o doc e ao mesmo postback tempo. Existe uma maneira da camada de controle de link em cima de outro controle de tal forma que o link apenas links e o controle abaixo causa um postback?

32U

Fixo: a resposta deu a pista. No servidor, durante a criação do controle dinâmico que eu fiz:

HyperLink hrefLetter = new HyperLink();
hrefLetter.ID = standardLettersHref_ + items.letterName;
hrefLetter.Text = items.letterName;                
hrefLetter.NavigateUrl = folderForPackageLetters + items.letterName + wordDocExtension;                               
hrefLetter.Attributes.Add(OnClick, letterHrefClick(' + items.letterName + wordDocExtension + '));
tRow.Cells[1].Controls.Add(hrefLetter);

lado, então cliente Eu empurrei um valor em um controle escondido dentro do painel de ajax quando o controle hiperlink foi clicado e forçou apresentar:

function letterHrefClick(link) {
  //alert(link);
  form1.hdnLetterClick.value = link;
  form1.submit();
}

Após a enviar, de volta no lado do servidor, eu tenho o valor no evento Page_Load:

 string x = hdnLetterClick.Value;

bom!

atualizar ... Uma forma ainda melhor de fazer isso ... no uso postback javascript:

__doPostBack(hdnLetterClick, somevalue);

em seguida, no codebehind na Page_Init que você pode fazer (e não para o botão ou imgbutton):

string postbackControlID = Request.Params.Get(__EVENTTARGET);
string postbackArgument = Request.Params.Get__EVENTARGUMENT);

para obter o que você precisa. Este é melhor se lidar com controles dinâmicos para que você possa controlar estado durante o controle de recreação.

Publicado 19/05/2009 em 22:18
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Se você dá o seu link de um onclickatributo, essas ações JavaScript também deve ser executado quando o link for selecionado.

Respondeu 19/05/2009 em 22:28
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more