Usuário com melhor resposta
Passando Array do C# para javascript

Pergunta
-
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
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
-
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!