none
用户控件的属性问题 RRS feed

  • 问题


  • 我定义如下用户控件,里面有两个属性PageCount,Pageth,当我在引用页中设置属性时,为什么用户控件读取不到这些值啊,如果是要设置视图状态,我该怎么设置啊。。

    引用页的代码   

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            PageSelect1.PageCount = TextBox1.Text
        End Sub

    用户控件的代码

    Partial Class UserControl_SystemManagement_FileManagement_PageSelect
        Inherits System.Web.UI.UserControl

        Private intPageCount As Integer
        Private intPageth As Integer

        Public ReadOnly Property Pageth() As Integer
            Get
                intPageth = ViewState("intPageth")
                Return intPageth
            End Get
        End Property

        Public Property PageCount() As Integer
            Get
                intPageCount = ViewState("intPageCount")
                Return intPageCount
            End Get
            Set(ByVal value As Integer)
                ViewState("intPageCount") = value
                intPageCount = value
            End Set
        End Property


        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If intPageCount = 1 Then
                lbOne.Visible = True
                lbTwo.Visible = False
                lbThree.Visible = False
                lbFour.Visible = False
                lbFive.Visible = False
            ElseIf intPageCount = 2 Then
                lbOne.Visible = True
                lbTwo.Visible = True
                lbThree.Visible = False
                lbFour.Visible = False
                lbFive.Visible = False
            ElseIf intPageCount = 3 Then
                lbOne.Visible = True
                lbTwo.Visible = True
                lbThree.Visible = True
                lbFour.Visible = False
                lbFive.Visible = False
            ElseIf intPageCount = 4 Then
                lbOne.Visible = True
                lbTwo.Visible = True
                lbThree.Visible = True
                lbFour.Visible = True
                lbFive.Visible = False
            ElseIf intPageCount = 5 Then
                lbOne.Visible = True
                lbTwo.Visible = True
                lbThree.Visible = True
                lbFour.Visible = True
                lbFive.Visible = True
            End If
        End Sub
    End Class

    2010年5月9日 15:01

答案

  • 你好,控件的视图状态默认是开启的,请检查是否在Page申明或者Web.config或者后台代码修改了。

    引用页面是可以获取,或者设置用户控件的属性的。你可以在属性set处,设置断点跟踪一下,看传入的Value值是否是期待值,是否在传入时已经被篡改。


    邹俊才
    2010年5月9日 16:11
    版主

全部回复

  • 你好,控件的视图状态默认是开启的,请检查是否在Page申明或者Web.config或者后台代码修改了。

    引用页面是可以获取,或者设置用户控件的属性的。你可以在属性set处,设置断点跟踪一下,看传入的Value值是否是期待值,是否在传入时已经被篡改。


    邹俊才
    2010年5月9日 16:11
    版主
  • 我知道我问题出在哪里了,因为下面的代码是放在用户控件的load事件中的,引用页的代码是在click事件中的,这里面存在一个事件追加的问题,当我把引用页的代码放在load中就可以了,呵呵。
    2010年5月10日 0:56