<script>
function Show()
{
var Keys="aa";
var vstr='<%=ButtShow("'+Keys+'") %>';    
alert(vstr);
}
</script>
  public string ButtShow(string strs)
    {       
        if (strs=="aa")
        {
           retutn "111111"
        }
        else
        {
            return strs;
        }        
    }运行时他执行的是else,返回 aa 请问为什么?

解决方案 »

  1.   

    先執行完public string ButtShow(string strs){},此時strs為null,所以為false
    然后再執行javascript:Show().
      

  2.   

    <script> 
    function Show() 

    var Keys="aa"; 
    var vstr=' <%=ButtShow("'+Keys+'") %>';    
    alert(vstr); 

    </script> 
    这段代码最后生成在客户端的是这样的:<script> 
    function Show() 

    var Keys="aa"; 
    var vstr=''+Keys+'';    
    alert(vstr); 

    </script> 
     因为你传到服务器端的是这个 ' + Keys + ' ,服务器端方法返回的是这个,所以你现实的结果是Keys的客户端传值到服务器端是不能这么做的,这样做不到
      

  3.   

    你可以打开最后生成的html源代码看看就明白了。
      

  4.   

    或者你到服务器端跟踪下str的值不就清楚了?看是不是我说的那个
      

  5.   

     if (strs.value=="aa") 试试
      

  6.   

    ButtShow ... 你这个函数名好淫荡哦var vstr=' <%=ButtShow(Keys) %>';试试看
      

  7.   

    public string ButtShow(string strs) 
        {      
            if (strs=="aa") 
            { 
              retutn "111111" 
            } 
            else 
            { 
                return strs; 
            }        
        } 
    strs 不是空如果直接返回的话可以把aa 返回去的,
    我现在就是不明白我已经把aa传过去了也能把aa返回来怎么在后台就不能对他判断????
      

  8.   

    ("'+Keys+'") 我总觉得这样用有点怪你直接写var vstr= <%=ButtShow("aa") %>试试看,如果能判断就不是后台的问题。
      

  9.   


    你没按我说的去看吗?strs是不为空,但它的值是" ' + Keys'"后台用<%=%>标示只是输出这个值的到客户端,形成html的一部分
    所以你那句话成了
    var vstr=''+Keys+'';    
    其结果恰巧对了,难道我没说明白吗?
      

  10.   

    楼主你做做AJAX,AJAX不是这样子写的!
      

  11.   

    AJAX我用了但是我想在方法里获取GridView里的主键值,AJAX方法是不是不能访问控件的值啊,
    还是我没写明白。就是得不到GridView的值
      

  12.   

     if (strs=="aa") 
            { 
              retutn "111111" //这里的return写错了。需加个;
            } 
      

  13.   

    public string ButtShow(string strs) 
        {
            TextBox1.Text = strs;
            if (strs.Trim()=="aa") 
            {
                return "111111";
            } 
            else 
            { 
                return strs; 
            }        
        } 
    大家猜猜TextBox1.Text 是多少???
      

  14.   


    你为了获取gridview的主键值??难道不能在ie上直接拿到?而却要跑到服务器端去拿??
    在你的gridview显示的时候,在它显示的tr上加个keyvalue的属性,把这行的主键值附上去(用hidden控件也行),行数你应该是知道的,然后用js就可以拿到这个keyvalue的值了。