<asp:button id="btnAllPass" runat="server" Text="通过" onclick="alert('adf')"></asp:button>加 onclick="alert('adf')"就出错了!有什么办法吗?

解决方案 »

  1.   

    <asp:button id="btnAllPass" runat="server" Text="通过"></asp:button>
    你需要注册客户端的 onclick 事件
    private void Page_Load(...)
    {   
      if(!IsPostBack)
      {
        btnAllPass.Attributes.Add("onclick","alert('adf');");
      }
    }
      

  2.   

    web控件只能调用web程序你应该另写一个函数
    protected  A()
    {
        Response.Write("<script language=javascript >alert('adf');</script>");}
    onclick=A()类似的写法
      

  3.   

    用HTML控件吧   
    要是用控件信息被拦截的程度会变大的
      

  4.   

    要不就写个 js  在onclick中引用js 的alert函数
      

  5.   

    因为<asp:button></asp:button>是服务端控件,当然执行的也应该是服务器端方法了
    楼上各位说的 button.Attributes.Add就是最好的方法了。
      

  6.   

    搂住总结:楼上说得都很有道理
    button.Attributes.Add这个办法我知道的
    就是不明白“web控件只能调用web程序”这句话
    后来发现其实也是可以的,使用HTC
    <script language="jscript" event="onclick" for="Button1">
    if(!confirm('确认不asdf通过吗')) return false
    </script>
    然后再执行后台代码也是可以的,我试过了
      

  7.   

    补充:
    就是不明白“web控件只能调用web程序”这句话是因为:
    查看源代码,我发现后台服务器控件被执行后都转换成<input...>然后发送到客户端了,后来我就想为什么把onclick嵌入就出错?也许可能是DOTNET本身转换的时候没有这个语法把?
    在后来就想到了HTC,里面不能写咱就把它拿出来吗!
      

  8.   

    web控件的onclick 在编译的时候是要找后台的对应的事件的,你没有在后台写,所以会出错。