私のWebページで、私はusercontrolのインスタンスを複数読み込んでいます。投稿の往復のプロパティの束を保存する必要がありますが、ViewStateにそれらのプロパティを保存し、それらをusercontrol内のリピータ項目に再度設定する方法について混乱しています。動的に追加されたusercontrolでViewStateを使用することについて混乱しました
は、誰もがこのような状況で私を助けることができる、私はのViewStateのMSDNを読みましたが、私はこれは私が子コントロールが同じにロードされている(親ユーザーコントロールをロードする方法で、何らかの理由
のために非常によくそれを理解していないです同じユーザーコントロールを使用する)
Protected Sub Load_Controls(ByVal list As List(Of BSEvaluationGroup.category), ByVal gid As Integer, ByVal pid As Integer, ByVal fid As Integer)
Dim item As BSEvaluationGroup.category
For Each item In list
Dim ctl As PerformanceEvaluationSubcontractorControl = CType(Page.LoadControl("PerformanceEvaluationSubcontractorControl.ascx"), PerformanceEvaluationSubcontractorControl)
ctl.categoryid = item.catid
ctl.categoryname = item.catname
ctl.projectid = pid
ctl.folderid = fid
ctl.groupid = gid
ctl.parentid = item.parid
ctl.clist = item.categories
ctl.plist = item.points
ctl.parentpage = Me
ctl.EnableViewState = "true"
If (Not subcon Is Nothing AndAlso Not subcon.points Is Nothing) Then
ctl.epnts = subcon.points
End If
AddHandler ctl.BubbleCalculate, AddressOf Me.PostRating
Select Case gid
Case 1
Me.officephld.Controls.Add(ctl)
Dim ohrule As HtmlGenericControl = New HtmlGenericControl("hr")
ohrule.Style.Add("width", "100%")
ohrule.Style.Add("background-color", "Silver")
ohrule.Style.Add("size", "1px")
ohrule.Style.Add("border-width", "0")
ohrule.Style.Add("padding-top", "1px")
ohrule.Style.Add("float", "left")
Me.officephld.Controls.Add(ohrule)
Case 2
Me.sitephld.Controls.Add(ctl)
Dim shrule As HtmlGenericControl = New HtmlGenericControl("hr")
shrule.Style.Add("width", "100%")
shrule.Style.Add("background-color", "Silver")
shrule.Style.Add("size", "1px")
shrule.Style.Add("border-width", "0")
shrule.Style.Add("padding-top", "1px")
shrule.Style.Add("float", "left")
Me.sitephld.Controls.Add(shrule)
End Select
Next
End Sub
を追加し、あなたが動的にユーザーコントロールを作成する方法私たちを表示します。 UserControlのサーバーコントロール(f。TextBox)としてそれらのプロパティを追加できません。このようにして、これらのプロパティは自動的にViewStateに格納されます。それ以外の場合は、手動で追加するだけです。 'ViewState(" MyProperty1 ")= value' –
コントロールをロードするコードを追加しました。 "ctl.epnts = subcon.points"は、リピータにロードされているAjaxControlToolKit評価コントロールに使用されます。 – mattgcon
...そしてどこで 'Load_Controls'を呼び出していますか?以前と同じIDでポストバックしてもリロードする必要があることに注意してください。 –