2009-08-12 69 views
0

在ASP.Net中自定义向导控件的外观,并发现了如何使用SideBarTemplate禁用侧边栏按钮并捕获OnItemDataBound事件。非常简单。我现在想要做的是修改渲染的LinkBut​​ton的文本,在当前步骤中为步骤名称加上“>>”之类的前缀。在ASP.Net向导中设置LinkBut​​ton标题向导栏模板

所以,对于SideBarList我ItemDataBound事件处理程序中,我有以下代码:

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 

不过,我觉得是跟踪输出显示为lunkbutton文本空字符串,但风格改变工作。

我想在错误的地方设置文本?

感谢

回答

3

我没有发现任何方式SideBarButton改变,这就是为什么我添加 在SelectedItemTemplate到DataList控件另一个链接按钮控制“SideBarButton”文本属性和设置可见=“FASLE”。 SelectedItemTemplate将用于在侧边栏中呈现当前向导步骤中的项目。


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

在OnItemDataBound情况下这样做


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不会因为可见=“假”,只有ActiveSideBarButton为当前步骤将与您需要的参数被渲染呈现。