2009-08-12 4 views
0

J'ai joué avec la personnalisation de l'apparence du contrôle Wizard dans ASP.Net et j'ai découvert comment désactiver les boutons de la barre latérale en utilisant le SideBarTemplate et attraper l'événement OnItemDataBound. Tout est assez facile. Ce que je veux faire maintenant est de modifier le texte du LinkButton rendu pour préfixer le nom de l'étape avec quelque chose comme ">>" pour l'étape en cours.Définition du titre LinkButton dans le modèle de barre latérale de l'assistant ASP.Net

Ainsi, dans mon gestionnaire d'événements ItemDataBound pour le SideBarList, je le code suivant:

Dim stepCurrent As WizardStep = e.Item.DataItem 
    Dim linkCurrent As LinkButton = e.Item.FindControl("SideBarButton") 
    If Not stepCurrent Is Nothing Then 
     Trace.Write("SideBar", "Current Step = " & stepCurrent.Wizard.ActiveStep.Name) 
     Trace.Write("Sidebar", "Link Button = " & linkCurrent.Text) 
     linkCurrent.Enabled = False 
     If stepCurrent.Wizard.ActiveStepIndex = e.Item.ItemIndex Then 
      linkCurrent.Style.Add(HtmlTextWriterStyle.Color, "#000000") 
      linkCurrent.Style.Add(HtmlTextWriterStyle.FontWeight, "bold") 
      linkCurrent.Text.Insert(0, ">> ") 
     End If 
    End If 

Cependant, ce que je trouve est la sortie de trace montre une chaîne vide pour le texte lunkbutton, mais le style les changements fonctionnent. Est-ce que j'essaie de placer le texte au mauvais endroit?

Merci

Répondre

3

Je ne trouve aucun moyen de changer la propriété de texte « SideBarButton » qui est la raison pour laquelle j'ai ajouté un autre contrôle bouton lien SelectedItemTemplate à DataList et VISIBLE = « Fasle » dans SideBarButton. SelectedItemTemplate sera utilisé pour rendre l'élément dans la barre latérale pour l'étape actuelle de l'assistant.


    <ItemTemplate> 
     <asp:LinkButton ID="SideBarButton" runat="server"/> 
    </ItemTemplate> 
    <SelectedItemTemplate> 
     <asp:LinkButton ID="ActiveSideBarButton" runat="server"> 
     <asp:LinkButton Visible="false" ID="SideBarButton"unat="server"/> 
    </SelectedItemTemplate> 

En cas OnItemDataBound faire quelque chose comme


Dim stepCurrent As WizardStep = e.Item.DataItem 
If stepCurrent.Wizard.ActiveStepIndex = e.Item.ItemIndex Then 
    Dim linkCurrent As LinkButton = e.Item.FindControl("ActiveSideBarButton") 
    linkCurrent.Style.Add(HtmlTextWriterStyle.Color, "#000000") 
    linkCurrent.Style.Add(HtmlTextWriterStyle.FontWeight, "bold") 
    LinkCurrent.Text = stepCurrent.Title; 
    linkCurrent.Text.Insert(0, ">> ") 
End If 

SideBarButton ne sera pas rendu visible en raison de = « false » et seulement ActiveSideBarButton pour l'étape en cours sera rendu avec les paramètres dont vous avez besoin.

Questions connexes