前台JS<script type="text/javascript">
function dd()
{
    var v="2";
    var str="<%=SetType(2)%>";
    alert (str);
}
</script>....
<input id="Button2" type="button" value="button" onclick="dd();" />
....
后台CS
public string SetType(String value)//要注意这里是有参数的
    {
        string typeID = value.ToString();
        if (typeID == "1")
            return "整机";
        if (typeID == "2")
            return "配件";
        else
            return "aa";
    }以上代码执没问题。但我现在想把js改为可带变量的调用CS方法,请问如何改;<script type="text/javascript">
function dd()
{
    var v="2";
    var str="<%=SetType(2)%>";     //<----关键这句如何把2改为变量,试了好多方法都出错,请大家帮忙!!
    alert (str);
}
</script>

解决方案 »

  1.   

    <script type="text/javascript">
    function dd()
    {
      var v="2";
      var str="<%=SetType("'+v+'")%>";
      alert (str);
    }
    </script>后台CS
    public string SetType(String value)//要注意这里是有参数的
      {
      string typeID = value.ToString();
      if (typeID == "1")
      return "整机";
      if (typeID == "2")
      return "配件";
      else
      return "aa";
      }
      

  2.   


    <input type="hidden" runat="server" id="txthidden" />
    <input id="Button2" type="button" value="button" onclick="dd();" />
    ....<script type="text/javascript">
    function dd()
    {
      var v=2;
      var str= new Array();   
      str=document.getElementById("txthidden").value.split("|");
      alert(str[v-1]);
    }
    </script>
    .cs
    protectd void Page_Load(object sender,EventArgs e)
    {
       if(!Page.IsPostBack)
       {
         txthidden.value="整机|配件|aaa";//也可以换成你的方法等等。 
       }
    }
      

  3.   

    楼主可以试试AjaxPro.2.dll祝你成功!
      

  4.   

    protected string A(string str)
    {
      str = ""+str;
      return str;
    }
     function Fuc()
     {
      var v = "";
      var s = '<%=A("'+v+'") %>';
      alert(s);
     }
    ajax
    function startRequest(str) {
                createXMLHttpRequest();
                xmlHttp.onreadystatechange = handstateChane;
                xmlHttp.open("Get", "AjaxInfo.aspx?a=" + str, true);
                xmlHttp.send(null);
            }
      

  5.   

    不用ajax貌似不行,因为到页面上的时候  <%=SetType(2)%>,这段服务器端代码已经执行过了
      

  6.   

    我借用了(人生如梦)兄的方法:public string SetType(string value)//要注意这里有参数的,并且根据参数类型执行复杂方法后再返回的。
        {
            string typeID = value.ToString();
            if (typeID == "1")
                //执行复杂方法后
                return "整机";
            if (typeID == "2")
                //执行复杂方法后
                return "配件";
            else
                //执行复杂方法后
                return "tec";
        }<script type="text/javascript">
    function dd()
    {
        var v="1";
        var str='<%=SetType("'+v+'") %>';   //<----借用(人生如梦)的方法
        alert (str);
    }
    </script>还是不行,按逻辑,上面的代码执行的结果应是显示“整机”,但实际运行的结果是“tec”,说明我的前台参数传递失败了。
      

  7.   

    function getValue()

    var loginName = document.getElementById('<%=this.txt_Value.ClientID %>').value;
    SetType(loginName,find);
      function find(result){
                result = result.value;
                 alert(result);
            }
    }
    后台 [AjaxPro.AjaxMethod]
    public string SetType(String value)//要注意这里是有参数的
      {
      string typeID = value.ToString();
      if (typeID == "1")
      return "整机";
      if (typeID == "2")
      return "配件";
      else
      return "aa";
      }
    (导入下ajaxpro)
      

  8.   

    前台 JS<script language="javascript" type="text/javascript">
            
        function ReceiveDataFromServer(valueReturnFromServer)
         {
             valueReturnFromServer;//这个是你调用后台返回的值 如果不要可以不用     }
        
        function GetServerTime()
         {
         
            
             CallBackToTheServer("", "");// 这个是你调用后台的方法 第一个参数是传入的值 后面那个参数可以不管
         }
        
        </script>
    后台using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.OleDb;
    using Dal;
    using Moder;
    using System.Text;public partial class AddExcel : System.Web.UI.Page, ICallbackEventHandler
    {
        protected void Page_Load(object sender, EventArgs e)
        {
                     if (!IsPostBack)
                    {
                        string strRefrence = string.Empty;
                        strRefrence = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveDataFromServer", "context");                    string strCallBack = string.Empty;
                        strCallBack = "function CallBackToTheServer(arg, context) {" + strRefrence + "};";                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallBackToTheServer", strCallBack, true);
                    }
                }
      
            #region ICallbackEventHandler Members    private string strTimeFormat;    public string GetCallbackResult()
        {
                  你可以将strTimeFormat 这个参数 在这里处理你的方法或者在这里传入你的方法里面也行
            return "导入Excel成功!";// 这个是你前台获得的返回值
        }    public void RaiseCallbackEvent(string eventArgument)
        {
            strTimeFormat = eventArgument;// 这句话就是你前台传入的参数
        }    #endregion
      }
    这是客户端回调函数的方法
    你可以在网上找的到