后台代码:
public string[] names = new string[100];
    public void read(string name)
    { 
        try
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Server.MapPath("./") + "xmlfile\\" + name + ".xml");
            for (int i = 0; i < doc.DocumentElement.ChildNodes.Count; i++)
            {
                names[i] = doc.DocumentElement.ChildNodes[i].ChildNodes[0].Value;
            }
        }
        catch { }        
    }name1.xml:
<?xml version="1.0" encoding="gb2312"?>
<item>
  <name>张三</name>
  <name>李四</name>
  <name>王五</name>
  <name>赵六</name>
</item>前台如何用JS调用这个方法,并将name1传到后台,读name1并为names赋值,因为前台在后面一些会用到这个数组中的值.

解决方案 »

  1.   

    后台写成webservice前台js用xmlhttp调用
    或者用ajax
      

  2.   

    莫名奇妙 本来就是后台得到的值 你再传回后台
    前台用<%= %>调值就可以了
    下次再用时,后台已经有了,直接用
      

  3.   

    加为好友 
    发送私信 
    在线聊天
    myqxue 
    叶子 
    等级:嘿嘿,调用后台方法只能AJAX。
    看看AJAXPRO的原理就知道了,主要是HTTPHANDLER,反射,JS
      

  4.   

    color=#0000FF]后台写成webservice前台js用xmlhttp调用 
    或者用ajax
    [/color]不明白,可以提供些代码吗?
      

  5.   


    不可以的,<%=readxml('name1') %>";
             alert("<%=names[1] %>");
    弹出空内容
      

  6.   

    你的函数没有返回值 是VOID型的 当然不能这么调
      

  7.   

    AJAX不熟,可以提供些代码看看吗
      

  8.   

    http://www.xker.com/page/e2007/0110/8729.html<%@ WebService Language="C#" class=MyMath %>
    using System;
    using System.Web.Services;
    public class MyMath {
    [WebMethod]
    public int add(int a, int b)
    {
    return a + b;
    }
    [WebMethod]
    public int subtract(int a, int b)
    {
    return a - b;
    }
    }
      

  9.   

    忘了一个重要的问题,我的IE是IE5,是否支持AJAX
      

  10.   

    后台将文件名属性化:
    ...
    public string DataFileName
    {
    get{
    ...
    }
    set{
    ...
    }
    }
    ...前台
    <input id="dt2" onclick="你的脚本" name="dt2" style="width: 138px" value=<%=DataFileName%>
      

  11.   

    后台的方法只是为names赋值,这个方法是没有返回值的
      

  12.   

    如果方法有返回值调方法
    现在你的方法无返回值,而是是给names赋值
    那前台取names值就好了呀
      

  13.   


    修改方法 让该方法return names;
      

  14.   


    前台定义一个变量
    var sel="name1";
    var nn=new Array();
    调用:
    nn="<%=read("+sel+") %>";后台传过去的是+sel+,而不是name1
    为什么?
      

  15.   

    网上的,有借鉴作用:C#代码与javaScript函数的相互调用
      我们通过问答的方式来为大家解答C#与JAVASCRIPT函数的相互调用:1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数?  问题1答案如下:  javaScript函数中执行C#代码中的函数:  方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;  2、在前台写一个js函数,内容为document.getElementById("btn1").click();  3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;  方法二:1、函数声明为public  后台代码(把public改成protected也可以)以下是引用片段:
      public string ss() 
      { 
      return("a"); 
      }
      2、在html里用 可以调用  前台脚本以下是引用片段:
      <script language=javascript>  
                 var a = "<%=ss()%>";  
                 alert(a);  
                 </script>
      方法三:1、以下是引用片段:
    <script language="javascript">  
                 <!--  
                 function __doPostBack(eventTarget, eventArgument)  
                 {  
                    var theForm = document.Form1;       //指runat=server的form  
                    theForm.__EVENTTARGET.value = eventTarget;  
                    theFrom.__EVENTARGUMENT.value = eventArgument;theForm.submit();  
                 }  
                 -->  
                 </script>  
                 <input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack(’Button1’,’’)">
    方法四: 
    以下是引用片段:
    script language="javascript">  
    function SubmitKeyClick()  
    {  
          if (event.keyCode == 13)  
          {  
              event.cancelBubble = true;  
              event.returnValue = false;  
              document.all.FunName.value="你要调用的函数名";  
              document.form[0].submit();  
          }  
    }  
    </script>  
    <INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">  
    <input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉 
      在.CS里有:以下是引用片段:
      public Page_OnLoad() 
      { 
      if (!Page.IsPost()) 
      { 
      string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:""; 
      //根据传回来的值决定调用哪个函数 
      switch(strFunName) 
      { 
      case "enter()": 
      enter() ; //调用该函数 
      break; 
      case "其他": 
      //调用其他函数 
      break; 
      default: 
      //调用默认函数 
      break; 
      } 
      } 
      } 
      public void enter() 
      { 
      //……比如计算某值 
      }
    问题2.如何在JavaScript访问C#变量?  答案如下:  方法一:1、通过页面上隐藏域访问<input id="xx" type="hidden" runat="server">  方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为’ ’或"+ +"方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本  "<script language=’javascript’>var temp=" + tmp + "</script>"    tmp是后台变量,然后js中可以直接访问temp获得值。  问题3.如何在C#中访问JavaScript的已有变量?  答案如下:  方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;  2、后台用request["id"]来获取值;  方法二:可以用cookie或session  问题4.如何在C#中访问JavaScript函数?  答案如下:  c#代码中执行javaScript函数:  方法一:1、Page.RegisterStartupScript("ggg"," ");  方法二:使用Literal类,然后
    以下是引用片段:
      private void Button2_Click(object sender, System.EventArgs e) 
      { 
      string str; 
      str=""; 
      //Literal1.Visible=true; 
      Literal1.Text=str; 
      }
     
      

  16.   

    ajax可以的,HOHO~现在ajax的应用还真广啊,可怜了我们这群程序员了,有新的就要不停的学...学无止境的说...
      

  17.   


    后台在page_load里给names赋了值在前台有个方法为页面上的文本框赋值:
    function setname()
    {
        for(var i=1;i<=4;i++)
        {
            document.getElementById("name"+i).value="<%=names[i-1] %>";
        }
    }可是"<%names[i-1] %>"有错:当前上下文中不存在"i"这个怎么解决?
      

  18.   

    你的i是前台的
    而<%=%>属于后台的
    你搞混了吧
      

  19.   


    我知道的,因为在前台赋值时我选择不同的文本框时,
    最后的数字是不一样的,所以我用一个变量来获取最后一个数字,
    然后 <%=我想用前台的那个数字(如i)%>
    得到相应数组某个位置上的值
      

  20.   

    我不太明白你的意思
    但是后台一样可以给前台显示赋值啊for (int i = 1; i < 5; i++) {
                ((Label)this.FindControl("name" + i)).Text = names[i - 1];
            }
      

  21.   

    给你一个利用Ajax判断用户名是否存在的代码
     <script language=javascript> 
        function checkUserName() 
      { 
       UserName=this.UserReg.UserName.value; 
       var xmlhttp; 
       try 
       { 
      xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
       } 
       catch (e) 
       { 
         try 
         { 
           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
         } 
         catch (e) 
         {  
         try 
         { 
       xmlhttp=new XMLHttpRequest(); 
         } 
         catch (e) 
         { 
         } 
         } 
       } 
      if (UserName=="") 
      { 
        msg="<img src='../images/icn_cancel.gif'>&nbsp;&nbsp;用户名不能为空"; 
     var ch=document.getElementById("check1"); 
     ch.innerHTML="<font color=’#aaaaaa’>"+msg+"</font>";     
     return false; 
      }   //创建请求,并使用escape对UserName编码,以避免乱码 
    xmlhttp.open("get","server.asp?UserName="+escape(UserName)); 
       xmlhttp.onreadystatechange=function() 
       { 
         if(4==xmlhttp.readyState) 
      { 
        if(200==xmlhttp.status) 
        { 
          if (xmlhttp.responseText=="yes") 
          {  
         msg="<img src='../images/icn_cancel.gif'>&nbsp;&nbsp;用户名已经存在"; 
          } 
       else 
       { 
        msg="<img src='../images/icn_ok.gif'>"; 
       }   
        } 
        else 
        { 
          msg="<img src='../images/icn_cancel.gif'>&nbsp;&nbsp;用户名已经存在"; 
        } 
        var ch=document.getElementById("check1"); 
        ch.innerHTML=msg;     
      } 
       } 
       xmlhttp.send(null);   
       return false; 
       }   
      //--> 
      </script> 
    input type=text name="UserName" onBlur="return checkUserName();"><span id="check1"></span>这是server.asp的代码
    dim rs_m,m_conn
    set rs_m = server.createobject("adodb.recordset")
    m_conn = "select * from Cl_User where username = '"&username&"' "
    rs_m.open m_conn, conn, 1, 1

    if not rs_m.bof then 
    response.write("yes")
    else 
    response.Write("no")
    end if
    rs_m.close
    set conn = nothing
      

  22.   

    我用<%= %>这种方式怎么报错呢
      

  23.   

    基本没报错啊 我也用<%=%>这样是对的 是不是因为IE版本低的原因啊 可能不支持是不是
      

  24.   

    更正  <% function() %>
      

  25.   

    .net前台JS调用后台程序代码 【注意:绝对可用】
    http://user.qzone.qq.com/669247240/blog/1302317905