ورود

View Full Version : سوال: خطا در کلیک بر روی کلید موجود در MultiView



ROSTAM2
یک شنبه 25 آذر 1403, 07:25 صبح
سلام....

من یک MultiView ایجاد کردم که در ثسمت کد View ها اضافه می شن:



Dim View As View
Dim Content As Button
Me.MultiView1.Views.Clear()
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 Button
With Content
.ID = Entry.Id
.Text = Entry.Title


AddHandler .Click, AddressOf ViewItem_Click
End With
.Controls.Add(Content)
End With
Me.MultiView1.Views.Add(View)
Me.MultiView1.SetActiveView(View)
Next


156338

ولی با کلیک بر روی کلیدو این خطا رو برمیگردونه:

156337

ROSTAM2
یک شنبه 25 آذر 1403, 08:18 صبح
من با یان روش حلش کردم که متغیری با 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 صفحه آیتم ها درست می شن:

156341



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