maneira mais simples de atualizar uma variável de matriz javascript do lado do cliente durante um postback ASP.NET AJAX em um UpdatePanel?

StackOverflow https://stackoverflow.com/questions/95005

  •  01-07-2019
  •  | 
  •  

Pergunta

Se eu quiser injetar uma variável de matriz escopo global em uma página javascript do lado do cliente durante um postback de página inteira, eu posso usar:

this.Page.ClientScript.RegisterArrayDeclaration("WorkCalendar", "\"" + date.ToShortDateString() + "\"");

para declarar e preencher uma matriz de javascript do lado do cliente na página. Agradável e simples.

Mas eu quero fazer o mesmo a partir de um postback assíncrono de um UpdatePanel.

O mais próximo que posso imaginar até agora é criar um arquivo .js que só contém a declaração var, atualizar o arquivo durante o postback assíncrono, e então usar um ScriptManagerProxy.Scripts.Add para adicionar o arquivo .js para escopo global da página.

Existe alguma coisa mais simples? r iz doin errado?

Foi útil?

Solução

Você também pode atualizar um rótulo escondido dentro do painel de atualização que permite que você escreva qualquer javascript você gosta. Eu sugeriria que usando serviços da Web ou métodos de página até mesmo para buscar os dados que você precisa em vez de usar painéis de atualização.

Exemplo: myLabel.Text = "...."; ... colocar a sua lógica nisso ou você pode adicionar [WebMethod] para qualquer método de página e retornar dados estáticos público diretamente.

Outras dicas

Use o método estático System.Web.UI.ScriptManager.AddStartupScript ()

O script será executado em todos os postbacks integrais e parciais.

Sam está correto. ScriptManager.RegisterStartupScript é o nome correto da função. Ele será executado em todas as atualizações da página integrais e parciais.

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