我在页面里的一个控件加上 OnClientClick="return A();"
// A的代码大意如下
function A()
{
   if(true) // 条件成立
   {
      return true;
   }
   else
   {
      return window.alert("xx");
   }
}
这样可以正常工作。
但我把A()改造成A(obj)传进去递参数后,就不能正常工作了,请指教。可能应该是个js的问题吧?

解决方案 »

  1.   

    终于发现了,服务器控件里这样的写法是不行的,看来还得包装一层,不知道有没有更好的写法
    OnClientClick='return DelConfirm("<%# GridView1.ClientID %>");'
      

  2.   

    是了,调用客户端代码时,要通过<%=%>输出语句传递服务器端变量给客户端
      

  3.   

    lz 说的没错
    想那种在 gridview 里的控件 或是 使用了母版页 的页面中的控件
    都可以使用 <%= 控件ID.ClientID %>
      

  4.   

    这样试试// A的代码大意如下
    function A(gh)
    {
       if(true) // 条件成立
       {
          return true;
       }
       else
       {
          window.alert(gh);
       }
    }
      

  5.   

    要用服务器控件需要加ClientID("<%# GridView1.ClientID %>");
      

  6.   

    楼上的都没理解我的意思,我把代码贴一下,你们自己试试就知道了
    <asp:LinkButton ID="lbtnDel" runat="server" OnClick="lbtnDel_Click" OnClientClick="return DelConfirm('<%= GridView1.ClientID %>');">删除</asp:LinkButton>服务器控件( LinkButton )用这样的写法在客户端里得到的控件 id 不正确,但是如果不是服务器(比如 <input type="button">)这样写是可以的,如下<input type="button" value="删除" onlick="return DelConfirm('<%= GridView1.ClientID %>');" />
      

  7.   

    不是,运行后看下源文件就知道了,服务端控件里的 < 这类符号被解释成了html里的实体了,根本无法得到那个控件的ClientID,不知道怎么解决这个问题
      

  8.   

    我来贴一下,变成这样了,用普通html控件就不会,应该怎么解决?<a onclick="return DelConfirm(&quot;&lt;%= GridView.ClientID %>&quot;);"