من با یان روش حلش کردم که متغیری با Access Level در کل پروژه ایجاد کردم که آیتم ها از طریق اون ساخته می شه:
Friend Entries As List(Of AppProjects)
و در رویداد Init از Page در صورتیکه متغیرو مقداری داشته باشه آیتم ها ساخته می شن:
Private Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
Me.MultiView1.Views.Clear()
Me.FindListBox.Items.Clear()
Me.MultiView1.ActiveViewIndex = -1
If Entries Is Nothing OrElse Entries.Count = 0 Then Exit Sub
Dim View As View
Dim Content As ViewItem
For Each Entry As AppProjects In Entries
View = New View
With View
.ID = String.Format("Project:{0}", Entry.Id)
.ViewStateMode = UI.ViewStateMode.Disabled
Content = New ViewItem
Content = LoadControl("~/Custom Contents/ViewItem.ascx")
With Content
.ID = Entry.Id
End With
Me.FindListBox.Items.Add(New ListItem(String.Format("{0}) {1}", MultiView1.Views.Count + 1, Entry.Title), Entry.Id))
.Controls.Add(Content)
End With
Me.MultiView1.Views.Add(View)
Me.MultiView1.SetActiveView(View)
Next
End Sub
و بعد از گرفتن مقدار متغیر صفحه Refresh می شه:
Entries = FindInProjects(Me.ProjectTitle.FieldValue)
Response.Redirect("#")
بنابراین متغیرو آیتم داره و با Reload صفحه آیتم ها درست می شن:
Screenshot 2024-12-15 130256.png
Private Sub FindListBox_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles FindListBox.SelectedIndexChanged
If Me.MultiView1.Views.Count = 0 Then Exit Sub
Me.MultiView1.ActiveViewIndex = Me.FindListBox.SelectedIndex
End Sub