看到之前有同学提问相似的问题,可是答案一般都是c#的,要用到Btn1.Click+= new System.EventHandler(this.EventTest);这样的语句,不知道在vb里怎么写呢?我之前给控件写客户端事件都是这样的写法:btn.attributes.add("onclick","do()"),可是同样的方法写动态生成的控件就不管用了

解决方案 »

  1.   

    demo:
    <%@ Page Language="VB" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            AddHandler Me.Button1.Click, AddressOf MyProc
        End Sub
        
        Protected Sub MyProc(ByVal sender As Object, ByVal e As EventArgs)
            Me.Page.ClientScript.RegisterStartupScript(Me.GetType, "hello", "alert('test ok!');", True)
        End Sub
    </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server" Text="Button" />
        </form>
    </body>
    </html>
      

  2.   

    谢楼上,可是我的控件是动态生成的。我的代码:dim btn as new button
    btn.id="btn1"
    btn.text="按钮"
    btn.attributes.add("onclick","doclient()")
    tablecell.controls.add(btn)其中“doclient”是在aspx中定义的javascript函数
      

  3.   

    还有,我试了,如果上面btn.attributes.add("onclick","doclient()") 语句中的事件处理函数换成javascript中的标准函数如“alert('aa')”就可以起作用的,感觉像是在这个语句执行的时候我在客户端自己定义的函数还没有读到,所以添加不上??
      

  4.   


    难道你不去琢磨甚至模仿一下 AddHandler 的用法吗?demo是给你研究的,不是抄袭的。如果仅仅从网上抄袭,就不要搞开发了,那样很难干好开发。现在学软件但是失业的人太多了,他们几乎都会从网上抄袭代码。