none
Passando Array do C# para javascript RRS feed

  • Pergunta

  • Olá pessoal,

    espero que alguem consiga me ajudar!

    Como eu faço para passar um array de string do meu codebehind no C# para uma função javascript?

    Desde já, agradeço a ajuda de todos!

    quinta-feira, 30 de junho de 2011 04:37

Respostas

  • Bom passar diretamente não sei como, mais você pode atribuir o seu array de string à um HiddenField e depois recuperar o mesmo com o Javascript, segue abaixo um exemplo funcionando com ArrayList, mais da na mesma, creio eu que isso já possa te ajudar:

    .aspx (Pagina)
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
     <title>Untitled Page</title>
    
     <script language="javascript" type="text/javascript">
      function LerArrayList() {
       var listString = document.getElementById('HiddenField1').value;
       var listArray = listString.split('~');
    
       for(var i = 0; i < listArray.length; i++) {
        alert(listArray[i]);
       }
      }
     </script>
    
    </head>
    <body>
     <form id="form1" runat="server">
     <div>
      <asp:HiddenField ID="HiddenField1" runat="server" />
      <input type="button" onclick="LerArrayList();" value="Ler ArrayList" />
     </div>
     </form>
    </body>
    </html>
    

    .cs (Codebehind)
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    
    namespace WebApplication1
    {
     public partial class _Default : System.Web.UI.Page
     {
      protected void Page_Load(object sender, EventArgs e)
      {
       //Instanciando e preenchendo ArrayList
       ArrayList arrayList = new ArrayList();
       arrayList.Add("Valor1");
       arrayList.Add("Valor2");
       arrayList.Add("Valor3");
       arrayList.Add("Valor4");
       arrayList.Add("Valor5");
       arrayList.Add("Valor6");
    
       //Atribuindo os valores ao HiddenField
       HiddenField1.Value = ArrayListToString(arrayList);
      }
      
      private string ArrayListToString(ArrayList arrayList)
      {
       //Sainda a ser atribuida no HiddenField
       string saidaArray = "";
    
       for (int i = 0; i <= arrayList.Count - 1; i++)
       {
        //Verificando se é o primeiro item a ser tratado
        if (i > 0)
        { 
         //Delimitador
         saidaArray += "~";
        }    
        saidaArray += arrayList[i].ToString();
       }
       return saidaArray;
      }
     }
    }
    

     
    Vitor Mendes | Seu feedback é muito importante para todos!
    • Sugerido como Resposta Vitor Mendes segunda-feira, 4 de julho de 2011 11:30
    • Não Sugerido como Resposta Vitor Mendes terça-feira, 19 de julho de 2011 23:39
    • Sugerido como Resposta Vitor Mendes terça-feira, 19 de julho de 2011 23:39
    • Marcado como Resposta jpaquino segunda-feira, 10 de outubro de 2011 17:59
    quinta-feira, 30 de junho de 2011 11:52

Todas as Respostas

  • Bom passar diretamente não sei como, mais você pode atribuir o seu array de string à um HiddenField e depois recuperar o mesmo com o Javascript, segue abaixo um exemplo funcionando com ArrayList, mais da na mesma, creio eu que isso já possa te ajudar:

    .aspx (Pagina)
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
     <title>Untitled Page</title>
    
     <script language="javascript" type="text/javascript">
      function LerArrayList() {
       var listString = document.getElementById('HiddenField1').value;
       var listArray = listString.split('~');
    
       for(var i = 0; i < listArray.length; i++) {
        alert(listArray[i]);
       }
      }
     </script>
    
    </head>
    <body>
     <form id="form1" runat="server">
     <div>
      <asp:HiddenField ID="HiddenField1" runat="server" />
      <input type="button" onclick="LerArrayList();" value="Ler ArrayList" />
     </div>
     </form>
    </body>
    </html>
    

    .cs (Codebehind)
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    
    namespace WebApplication1
    {
     public partial class _Default : System.Web.UI.Page
     {
      protected void Page_Load(object sender, EventArgs e)
      {
       //Instanciando e preenchendo ArrayList
       ArrayList arrayList = new ArrayList();
       arrayList.Add("Valor1");
       arrayList.Add("Valor2");
       arrayList.Add("Valor3");
       arrayList.Add("Valor4");
       arrayList.Add("Valor5");
       arrayList.Add("Valor6");
    
       //Atribuindo os valores ao HiddenField
       HiddenField1.Value = ArrayListToString(arrayList);
      }
      
      private string ArrayListToString(ArrayList arrayList)
      {
       //Sainda a ser atribuida no HiddenField
       string saidaArray = "";
    
       for (int i = 0; i <= arrayList.Count - 1; i++)
       {
        //Verificando se é o primeiro item a ser tratado
        if (i > 0)
        { 
         //Delimitador
         saidaArray += "~";
        }    
        saidaArray += arrayList[i].ToString();
       }
       return saidaArray;
      }
     }
    }
    

     
    Vitor Mendes | Seu feedback é muito importante para todos!
    • Sugerido como Resposta Vitor Mendes segunda-feira, 4 de julho de 2011 11:30
    • Não Sugerido como Resposta Vitor Mendes terça-feira, 19 de julho de 2011 23:39
    • Sugerido como Resposta Vitor Mendes terça-feira, 19 de julho de 2011 23:39
    • Marcado como Resposta jpaquino segunda-feira, 10 de outubro de 2011 17:59
    quinta-feira, 30 de junho de 2011 11:52
  • Para passar um array de string do c# para javascript pode ser feito assim:

    no C#:

    string[] meuvetor = new  string[10];

    TextBox1.Attributes["onclick"] = "MinhaFuncao(" + meuvetor + ");

    no Aspx (javascript):

    function MinhaFuncao(vetor)

    {

        var item1 = vetor[0];

    }

     

    Espero ter ajudado. Abraço!

    sexta-feira, 1 de julho de 2011 12:49