Dim myPicture As New System.Windows.Forms.PictureBox()
'动态生成的控件,加一行
Private Sub UserControl1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Panel3.Controls.Add(myPicture)
myPicture.Size =New System.Drawing.Size(115, 160)
myPicture.TabStop =False
myPicture.Name ="p"
myPicture.Cursor = Cursors.Hand
AddHandler myPicture.Click, AddressOf mypic_Click '添加事件
AddHandler returnid, AddressOf idReturned '绑定事件和过程
End Sub
'再来个事件,放在声明的地方,就是类里面、过程外面
Private Event returnid(ByVal id As String) '这个事件可以传递值哦~
'普通的单击事件
Private Sub mypic_Click()
RaiseEvent returnid(myPicture.Name)
End Sub
'会传值的事件过程
Private Sub idReturned(ByVal id As String)
Dim bookInfo As New BookInfo
bookInfo.Show()
Me.Parent.Enabled = False
'用id变量做点什么吧
End Sub
如果要改事件的签名(参数一类的)的话,得重写控件。你可以这样自己弄一个事件。
你添加的是 js事件.只能通过前段浏览器捕获,是不能提交到后台的.方案1,给动态控件添加对应的服务器事件
Button.Command += new CommandEventHandler(this.On_Button)
自己写相应委托的 On_Button事件,
或者直接绑定OnClick事件.
方案2,还用你的方法,但是在前端 用js完善update()方法. 在js的update方法中调用AJAX反馈给服务器数据,服务器处理.
思路, ASP.net的任何服务器事件其实都是通过js的前端触发,把页面上的数据重新回传给了后台,可以了解下ASP.NET生命周期.
因此方案1是 直接调用ASP.NET机制 在前台自动生成了回传的js函数
而方案2是手动编写回传函数.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)