Alguém pode fornecer bons exemplos de como chamar uma função JavaScript From CodeBehind e vice-versa?
c#
javascript
asp.net
ssmsnet
fonte
fonte
Respostas:
Você pode tentar o seguinte:
fonte
Page.ClientScript.RegisterClientScriptBlock
é necessário, em vez disso, consulte esta postagem para obter informações . 2. Vale ressaltar que, para que MyFunction () funcione, MyFunction () deve ser definido antes das tags de formulário ou dentro delas, mas NÃO após a tag final </form> (caso contrário, ocorrerá um erro de objeto esperado ocorrer)ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "text", "openDep()", true);
trabalho.this.GetType()
lança um erro para mim.asp:UpdatePanel
e escrito em um evento de botão. O que faz com que a página seja postada.C # para JavaScript: você pode registrar o bloco de scripts para executar na página da seguinte maneira:
substitua a
alert()
peça pelo nome da sua função.Para chamar o método C # do JavaScript, você pode usar
ScriptManager
oujQuery
. Eu pessoalmente usojQuery
. Você precisa decorar o método que deseja chamar do JavaScript comWebMethod
atributo. Para obter mais informações sobre como chamar o método C # (chamadoPageMethod
),jQuery
consulte a publicação de Dave Ward .fonte
Chamando uma Função JavaScript do Código Atrás
Etapa 1 Adicione seu código Javascript
Etapa 2 Adicione 1 Gerenciador de scripts no seu formulário da web e adicione o botão 1 também
Etapa 3 Adicione este código ao evento de clique no botão
fonte
ScriptManager
como nesta resposta, nãoPage.ClientScript
como em outras respostas. Pode estar relacionado aoasp:UpdatePanel
comentário na resposta aceita.Você não pode fazer isso diretamente. Nas WebForms padrão, o JavaScript é interpretado pelo navegador e C # pelo servidor. O que você pode fazer para chamar um método do servidor usando JavaScript é.
WebMethod
comoattribute
nos métodos de destino.ScriptManager
configuraçãoEnablePageMethods
comotrue
.PageMethods
.Como isso:
Passo 1
Etapa 2: Adicionando um
ScriptManager
noPage
Etapa 3: Chamando o método usando JavaScript
Dê uma olhada neste link.
Para chamar uma função JavaScript do servidor, você pode usar
RegisterStartupScript
:fonte
GetProducts()
função é apenas uma função de code-behind que residia em um controlador em um aplicativo MVC; portanto, as tags ficam no topo de qualquer função que você deseja colocar em um controlador que você pretenderia chamar de JavaScript .Se você precisar enviar um valor como parâmetro.
fonte
Outra coisa que você pode fazer é criar uma variável de sessão que seja definida no código por trás e, em seguida, verificar o estado dessa variável e, em seguida, executar seu javascript. O bom é que isso permitirá que você execute seu script exatamente onde deseja, em vez de precisar descobrir se deseja que ele seja executado no DOM ou globalmente.
Algo assim: Código por trás:
Em javascript
fonte
Você não pode. O Codebehind está em execução no servidor enquanto o JavaScript está em execução no cliente.
No entanto, você pode adicionar
<script type="text/javascript">someFunction();</script>
à sua saída e, assim, fazer com que a função JS seja chamada quando o navegador estiver analisando sua marcação.fonte
Você pode usar literal:
fonte
O IIRC Code Behind é compilado no servidor e o javascript é interpretado no lado do cliente. Isso significa que não há vínculo direto entre os dois.
Por outro lado, o que você pode fazer é que o cliente e o servidor se comuniquem através de uma ferramenta bacana chamada AJAX. http://en.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML
fonte
Experimente isto no Code Behind e funcionará 100%
Escreva esta linha de código no arquivo Code Behind
E esta é a página do formulário da web
fonte
fonte
Exemplo de trabalho: _
Código por trás
Possíveis armadilhas: -
CodeBehind="History.aspx.cs"
está apontando para a página erradafonte
Tenho notado que muitas das respostas aqui estão sendo usadas
ScriptManager.RegisterStartupScript
e, se você quiser fazer isso, não é o caminho certo. O caminho certo é usarScriptManager.RegisterScriptBlock([my list of args here])
. O motivo é que você só deve usar o RegisterStartupScript quando a página carregar (daí o nome RegisterStartupScript).No VB.NET:
em c #:
Claro, espero que seja desnecessário dizer que você precisa substituir key pelo seu identificador de chave e provavelmente deve mover tudo isso para uma sub / function / method e passar key e someJavascriptObject (se o seu método javascript exigir que seu arg seja um objeto javascript).
Documentos do MSDN:
https://msdn.microsoft.com/en-us/library/bb338357(v=vs.110).aspx
fonte
usar sua função é suficiente
fonte
Foi assim que eu fiz.
A marcação HTML mostrando um controle de rótulo e botão é a seguinte.
A função JavaScript está aqui.
O código para trás para acionar a função JavaScript está aqui.
fonte
isso funciona para mim
fonte
Como não consegui encontrar uma solução com código atrasado, que inclui tentar o
ClientScript
eScriptManager
como mutanic e Orlando Herrera disse nesta questão (ambos de alguma forma falhou), vou oferecer uma solução front-end que utiliza cliques de botão para outros se eles estão na mesma posição que eu. Isso funcionou para mim:Marcação HTML:
JavaScript:
Estou simplesmente usando um botão ASP.NET que utiliza a
OnClientClick
propriedade, que aciona funções de script do lado do cliente, que é JavaScript. As principais coisas a serem observadas aqui são os usos dareturn
palavra - chave na chamada da função e na própria função. Eu li documentos que não usam,return
mas ainda assim clicam no botão para funcionar - de alguma forma, não funcionou para mim. Areturn false;
instrução na função especifica que um postback NÃO deve acontecer. Você também pode usar essa declaração naOnClientClick
propriedade:OnClientClick="myFunction() return false;"
fonte
Eu usei o ScriptManager no Code Behind e funcionou bem.
Se você estiver usando o UpdatePanel no ASP Frontend. Em seguida, digite o nome UpdatePanel e 'nome da função' definido com as tags de script.
fonte
Obrigado "Liko", basta adicionar um comentário à sua resposta.
Adicionadas aspas simples (
'
) à variável, caso contrário, será exibida uma mensagem de erro:fonte
Você não pode chamar uma função Javascript do CodeBehind, porque o arquivo CodeBehind contém o código que executa o lado do servidor no servidor web. O código Javascript é executado no navegador da Web no lado do cliente.
fonte
Você pode expor os métodos C # nas páginas de código atrás para serem chamados via JavaScript usando o atributo ScriptMethod .
Você não pode chamar JavaScript de um CodeBehind - esse código existe apenas no cliente.
fonte