Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: bulletedlistin käyttö valikkona

ezku [16.06.2008 12:20:36]

#

Osaisiko joku auttaa seuraavanlaisessa ongelmassa?

Olen tehnyt masterpagen puolella valikon tyylillä

Dim s As New ListItem("testi", "testisivu.aspx")
        mainMenu.Items.Add(s)

Tässä kohtaa tarkistelen mitä valikon kohtaa käyttäjä painaa.

Protected Sub mainMenu_Click(ByVal sender As Object, _
            ByVal e As System.Web.UI.WebControls.BulletedListEventArgs) _
            Handles mainMenu.Click
        Dim position As Integer = e.Index
        For i As Integer = 0 To mainMenu.Items.Count - 1
            If i = e.Index Then
                mainMenu.Items(i).Attributes.Add("class", "on")
            Else
                mainMenu.Items(i).Attributes.Remove("class")
            End If

Ongelma on kun ohjelma käännetään niin käyttäjä ei ole vielä painanut mitään valikon kohtaa joten tuo tyylimuotoilun tarkistus ei mene läpi?
Toinen ongelma on kun käyttäjä vaikkapa hakee jotain tietoja sivulta niin sivu latautuu uudestaan ja tyylitieto ei pysy enää muistissa? Voisikohan joku fiksumpi auttaa?

neau33 [17.06.2008 20:31:17]

#

Heippa ezku!

Voisit vaikka kokeilla jotain seuraavanlaista...

Sub Page_Load(sender As Object, e As EventArgs)
  If Not Page.isPostBack Then
    Dim item As ListItem = mainMenu.Items(0)
    SetAttributeBySelection(item)
    item = Nothing
  End If
End Sub

Protected Sub mainMenu_Click( _
sender As Object, e As BulletedListEventArgs)
  SetAttributeBySelection(sender.Items(e.Index))
End Sub

Protected Sub SetAttributeBySelection(ByVal s_item As Object)
  Dim item As ListItem
  For Each item In mainMenu.Items
    If s_item.ToString = item.ToString Then
      item.Selected = True
      item.Attributes.Add("class", "on")
    Else
      item.Selected = False
      item.Attributes.Remove("class")
    End If
  Next
  item = Nothing
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta