我想用这种方法在javascript中调用一个服务器端带参数的函数应该怎么写?
var MapName = "<%=ReadPath(1)%>";
我用这种方法可以,但是吧1换成一个变量应该怎么写?语法是什么?Public Function ReadPath(ByVal info As Integer) As String
这个是我想调用的服务器端的函数的声明。请各位大虾指点,在线等回复。

解决方案 »

  1.   

    关注。我一般是用js点击一个button来操作后台代码
      

  2.   

     <%=ReadPath(1)%>本来就是调用方法了,这时当然要传实参了,就算是把1换成个变量,这个变量也是要赋值的
      

  3.   

    不是很明白你的意思
    你这个ReadPath(1)中的1不是你的变量赋值?
      

  4.   

    Public Function ReadPath(ByVal info As Integer) var MapName = " <%=ReadPath(" +info.toString() +")%>"; 
     
    end function intergerz转成STRING 函数可能不是toString,你自己查查
      

  5.   

    var num = 1;
    然后用num代替1该怎么写?
    我试过用<%=ReadPath("+num+")%>,但是不对,提示Input string was not in a correct format
         用<%=ReadPath(num)%>,也不对,提示Name 'info' is not declared
      

  6.   

    <%=%>这东西就相当于response.write
    他会在你的html呈现之前被先执行.
    如果你想在客户端调用服务端的一个方法用<%=方法()%>是不对的.
    参考ajax,异步请求等资料
      

  7.   

    toString方法是对的,但是这种写法也不对
      

  8.   

    如果想传递参数,必须异步调用。即用ajax
      

  9.   

    JavaScript调用C#办法-转帖 
    转帖:
    1.后台方法:
    protected string CsharpVoid(string strCC)
    {
     return strCC;
    }2.javascript 调用
    <script  language="javascript">
      var s = "<%=CsharpVoid("www.esoutong.com")%>";   
      document.write(s);
    </script>+++++++++++++++++第二种情况:1.后代码:
    protected void CsharpVoid()
    {
            string strCC = "www.esoutong.com";
            Response.Write(strCC);
    }2.调用方法:CsharpVoid()
    <script  language="javascript">
    document.write("<%CsharpVoid();%>");
    </script>你可在页面中放一个按钮,把它设置为不可见style="display:none",然后,用脚本让此按钮点击 
    document.all("button1").click(); 
    在此按钮的C#后台中写事件代码,这就是最简单的脚本调用C#方法. 
      

  10.   


        map.openInfoWindow(point,"车辆信息:<b>" + info + "</b>"+"<br />"+"坐标:"+"("+latitude+","+longitude+")"+"<br />"+"<a href=\"javascript:ShowPath('"+info+"');\">"+"历史行车路线"+"</a> ");    var ShowPath = function(info){    
           var MapName = "<%=ReadPath("info.toString()")%>"; 
           alert(MapName);
        };这是js端的    Public Function ReadPath(ByVal info As Integer) As String
            Dim connectionString As String = GetConnectionString()
            Dim queryString As String
            queryString = "select 经度 from history where 车牌 =" & info & ""
            Dim ReObject As Object = SelectCommand(queryString, connectionString)
            ReObject.GetLengthSid()
            Return info.ToString    End Function
    这是服务器端的我就是想通过网页的点击获得一个想要的参数,根据这个参数从服务器端读数据库,读到的信息再给js处理,
    请问不用这个的话正确的实现方式是怎样的?
    这个帖子我明天会加分的,谢谢大家
      

  11.   

    To: jimu8130那你说我这种需求该怎样去实现呢?一直做应用程序,突然转到写网页,
    感觉四处碰壁阿,脑子转不过弯了,请多多指教
      

  12.   

    map.openInfoWindow(point,"车辆信息:<b>" + info + "</b>"+"<br />"+"坐标:"+"("+latitude+","+longitude+")"+"<br />"+"<a href=\"javascript:ShowPath('"+info+"');\">"+"历史行车路线"+"</a> ");---
    这个是被谁调用了?是双击一个列表里面的某条记录?
      

  13.   

    To: greatverve 谢谢你提供的方法 :)
      

  14.   

    让控件运行在服务器端,在服务器上直接取参数不就行了
    ------------------
    自己先试验下
    map.openInfoWindow(point,"车辆信息: <b>" + info + " </b>"+" <br />"+"坐标:"+"("+latitude+","+longitude+")"+" <br />"+" <a href=\"javascript:ShowPath('"+info+"');\">"+"历史行车路线"+" </a> "); --- 
    这个是被谁调用了?是双击一个列表里面的某条记录从而调用这个方法? 
      

  15.   

    map.openInfoWindow是google map的api,就是在一个坐标点打开一个显示信息的气球,第一个参数是坐标,第二个是显示的信息,支持html。其实就是在这个气球上显示一个“历史行车路线”的连接,点击它调用js的ShowPath函数
      

  16.   

    恩,是单击一个列表里面的某条记录调用的map.openInfoWindow
      

  17.   

    接20f假如你当中的info字段在此页面是固定不变的,就可以用%=这个来弄,假如info在本页面是变化的比如我说的一个列表,然后双击其中一条记录捕捉其中的信息形成info,那么%=这样是不行的
      

  18.   

    to jimu8130:
    是你说的第2种情况,看来此路不通了,一下午又白忙活了
    能否给我点提示,我这种情况该怎么去实现?
      

  19.   

    请问你这个列表是用gridview还是datalist或者datagrid来显示了?如果用以上控件来显示(大体代码如下,思路肯定对的,代码可能需要根据vb来调整)
    那么可以在itemdatabound(gridview除外)或者rowdatabound(gridview)事件这样写
    if(数据行)---请自行添加代码
    {
       string 车辆ID = e.item.cells[i].value.tostring();
       string 车辆path =  ReadPath(车辆ID);
       e.item.attributes.add("onclick","aa('"+车辆ID+"','"+车辆path+"')";  ---车辆id反正是你列表当中的显示出的字段值得到的,如果需要其他字段内容可以仿照这个来扩展
    }前台<head>
      function aa(id,path)
    {   var latitude....
       map.openInfoWindow(point,"车辆信息: <b>" + id+ " </b>"+" <br />"+"坐标:"+"("+latitude+","+longitude+")"+" <br />"+" <a href=\"javascript:ShowPath('"+path+"');\">"+"历史行车路线"+" </a> "); }
      function ShowPath(info){    
          
           alert(info);
        }; 
    </head>
      

  20.   

    接25f:请务必注意,我写的attributes.add那里面如果有3个单引号的,其实是一个单引号加上一个双引号!不要弄错了
      

  21.   

    接26f:
    还有个问题就是
    如果那样得到的path很可能是过期的!因为该path是在当用户请求页面形成车辆列表的时候得到的那个时候的路径信息,有可能你点击其中某辆车信息的时候该路径信息已经过时,如果要得到实时的路径信息还是得借助ajax来做
      

  22.   

    其实楼上的一位兄弟说得很对,用Ajax原理来实现,xmlHttpRequest对象。。
      

  23.   

    <script runat="server">
    int num = 1;
    </script><%=ReadPath("+num+")%>自己测试下。另外,楼主对服务器代码和客户端代码要搞清楚,特别是服务器代码在前台页面中的写法,也就是代码不分离的情况的理解!
      

  24.   

    把1变成url参数不就行了啊  <%=ReadPath( Request.QueryString["num"])%> 
      

  25.   

    把1变成url参数不就行了啊  <%=ReadPath( Request.QueryString["num"])%> 
    ----------
    帖子都没看完全,自己又没测试,怎么知道就一定行了?
      

  26.   

    to: jimu8130
     按照你提供的思路,我的功能已经实现了,非常感谢.
    也谢谢其他帮我顶帖子的朋友 ,给分了