动态添加多个LinkButton 点击事件无效,请教要怎么重写方法来保存状态
动态添加多个LinkButton 点击事件无效,请问要如何重写方法来保存状态
If Page.IsPostBack = False Then
Dim page_first As LinkButton
page_first = New LinkButton()
page_first.ID = "page_first"
page_first.Text = FirstPageText
page_first.CommandArgument = 3
PlaceHolder1.Controls.Add(page_first)
AddHandler page_first.Click, AddressOf Page_Click
Dim page_prev As New LinkButton
page_prev = New LinkButton()
page_prev.ID = "page_prev"
page_prev.Text = " " + PrevPageText
page_prev.CommandArgument = pageno-1
PlaceHolder1.Controls.Add(page_prev)
AddHandler page_prev.Click, AddressOf Page_Click
......................
End If
Private Sub Page_Click(ByVal sender As Object, ByVal e As System.EventArgs)
pageno = sender.CommandArgument
Bind1()
End Sub
上面这样写的,调试发现点击LinkButton并没有执行Page_Click事件,点击后LinkButton也没有了,好像都被清空了
如果把添加LinkButton写在IsPostBack的外面,调试发现有个问题是点击LinkButton后是先运行Page_Click事件,然后再添加LinkButton的,这样的话LinkButton就被重置了
网上找了好久,说是要重写方法来保存状态 LoadViewState SaveViewState 什么的,可是完全不知道怎么写呀,哪高手帮我解决下啊,非常的感谢感谢!!
------解决方案--------------------
在override protected void OnInit(EventArgs e)中好点。参考msdn的例子
如何: 动态创建控件在 ASP.NET 中使用 Visual C#.net
http://support.microsoft.com/kb/317794
------解决方案--------------------
换成 Cache 试下
用法基本一样
If Page.IsPostBack = False Then
Dim page_first As LinkButton
page_first = New LinkButton()
page_first.ID = "page_first"
page_first.Text = FirstPageText
page_first.CommandArgument = 3
PlaceHolder1.Controls.Add(page_first)
AddHandler page_first.Click, AddressOf Page_Click
Dim page_prev As New LinkButton
page_prev = New LinkButton()
page_prev.ID = "page_prev"
page_prev.Text = " " + PrevPageText
page_prev.CommandArgument = pageno-1
PlaceHolder1.Controls.Add(page_prev)
AddHandler page_prev.Click, AddressOf Page_Click
......................
End If
Private Sub Page_Click(ByVal sender As Object, ByVal e As System.EventArgs)
pageno = sender.CommandArgument
Bind1()
End Sub
上面这样写的,调试发现点击LinkButton并没有执行Page_Click事件,点击后LinkButton也没有了,好像都被清空了
如果把添加LinkButton写在IsPostBack的外面,调试发现有个问题是点击LinkButton后是先运行Page_Click事件,然后再添加LinkButton的,这样的话LinkButton就被重置了
网上找了好久,说是要重写方法来保存状态 LoadViewState SaveViewState 什么的,可是完全不知道怎么写呀,哪高手帮我解决下啊,非常的感谢感谢!!
------解决方案--------------------
在override protected void OnInit(EventArgs e)中好点。参考msdn的例子
如何: 动态创建控件在 ASP.NET 中使用 Visual C#.net
http://support.microsoft.com/kb/317794
------解决方案--------------------
换成 Cache 试下
用法基本一样