to lions911(lions911) ViewState等于使用HIDDEN类型控件to comy(泥娃) 我想你没有使用过自定义空间吧,用CreateChildControls生成的那种。 在那种情况下,属性即使赋值给ViewState也是没用的
组件:Imports System Imports System.Data Imports System.Web.UI Imports System.Web.UI.HtmlControls Imports System.Web.UI.WebControlsPublic Class test Inherits Control Private _iTest As Integer Protected WithEvents btn1 As New Button() Public Property iTest() As Integer Get Return _iTest End Get Set(ByVal Value As Integer) _iTest = Value End Set End Property Public Sub New() btn1.ID = "ll" MyBase.Controls.Add(btn1) End Sub Protected Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click _iTest = CInt(ViewState("iTest")) + 1 MyBase.Page.Response.Write(_iTest) ViewState("iTest") = _iTest End Sub End Class页面: Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '在此处放置初始化页的用户代码 If Not IsPostBack Then mytest.iTest = 1 End If End Sub完全正常,每点击一次_iTest会从viewstate里先读取旧值,再加一
下面这篇文章也许会对你有所启发
http://www.csdn.net/develop/read_article.asp?id=18085
ViewState等于使用HIDDEN类型控件to comy(泥娃)
我想你没有使用过自定义空间吧,用CreateChildControls生成的那种。
在那种情况下,属性即使赋值给ViewState也是没用的
Imports System.Data
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControlsPublic Class test
Inherits Control Private _iTest As Integer
Protected WithEvents btn1 As New Button() Public Property iTest() As Integer
Get
Return _iTest
End Get
Set(ByVal Value As Integer)
_iTest = Value
End Set
End Property Public Sub New()
btn1.ID = "ll"
MyBase.Controls.Add(btn1)
End Sub Protected Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
_iTest = CInt(ViewState("iTest")) + 1
MyBase.Page.Response.Write(_iTest)
ViewState("iTest") = _iTest
End Sub
End Class页面:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
mytest.iTest = 1
End If
End Sub完全正常,每点击一次_iTest会从viewstate里先读取旧值,再加一
不是普通的把几个控件组合在一起,而是动态的
可能这次是一个dropdownlist,可能下一次是一个dropdownlist加一个button
所以要重载自定义控件的CreateChildControls方法。
而在页面,使用的时候必须用loadControl加载控件
你不用application,session好象就没办法了
或者将数据抛出来,再传进去,然后再重新调用CreateChildControls