The First Ques: You should add some code to check the IsPostBack in Page_Load method. If post bask, add the buttonI think It'll much better if you place the control on the page and hide it if it's necessary to show
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim bt As Button Dim I As Int16 For I = 1 To 3 bt = New Button() bt.Text = "test" & I bt.ID = "bt" & I AddHandler bt.Click, AddressOf bt_click Me.Panel1.Controls.Add(bt) Next End Sub Private Sub bt_click(ByVal sender As System.Object, ByVal e As System.EventArgs) CType(sender, Button).Text = "ok" End Sub <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <FONT face="宋体"> <asp:Panel id="Panel1" style="Z-INDEX: 101; LEFT: 44px; POSITION: absolute; TOP: 59px" runat="server" Width="179px"></asp:Panel> </form> </FONT> </body>
如果我是按了一个按钮后动态生成的按钮呢,比如 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click dim btn as new Button btn.text="确定" AddHandler btn.Click,addressOf btn_click End SubSub btn_click(ByVal sender As System.Object, ByVal e As System.EventArgs) response.write("hello") End Sub 这样在点击了Button1后,会生成一个新的按钮btn,但是如果点击btn,那在触发btn_click事件之前就已经传到服务器了,然后页面重新刷新,btn这个按钮也没有了,更别说执行事件了. 有什么办法可以执行这个btn_click啊?
You should add some code to check the IsPostBack in Page_Load method. If post bask, add the buttonI think It'll much better if you place the control on the page and hide it if it's necessary to show
不要这样用!应该是page.controls(1).controls.add
{
if (user.identity.isauthenticated)
{button1.visible = true;}
}
非要动态加载一个,事件处理就比较麻烦了。
在客户端将‘runat=server’加入:<Form method="POST" runat=server>
Dim bt As Button
Dim I As Int16
For I = 1 To 3
bt = New Button()
bt.Text = "test" & I
bt.ID = "bt" & I
AddHandler bt.Click, AddressOf bt_click
Me.Panel1.Controls.Add(bt)
Next
End Sub Private Sub bt_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
CType(sender, Button).Text = "ok"
End Sub
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:Panel id="Panel1" style="Z-INDEX: 101; LEFT: 44px; POSITION: absolute; TOP: 59px" runat="server" Width="179px"></asp:Panel>
</form>
</FONT>
</body>
dim btn as new Button
btn.text="确定"
AddHandler btn.Click,addressOf btn_click
End SubSub btn_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
response.write("hello")
End Sub
这样在点击了Button1后,会生成一个新的按钮btn,但是如果点击btn,那在触发btn_click事件之前就已经传到服务器了,然后页面重新刷新,btn这个按钮也没有了,更别说执行事件了.
有什么办法可以执行这个btn_click啊?