代码之家  ›  专栏  ›  技术社区  ›  Ken Ray

在ASP.NET向导边栏模板中设置LinkButton标题

  •  0
  • Ken Ray  · 技术社区  · 15 年前

    在ASP.NET中自定义向导控件的外观,我了解了如何使用SideBarTemplate禁用侧边栏按钮并捕获OnitemDataBound事件。一切都很简单。我现在要做的是修改呈现的链接按钮的文本,为当前步骤的步骤名称添加“>>”之类的前缀。

    因此,在侧栏列表的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文本显示了一个空字符串,但是样式更改有效。

    我是否试图将文本设置到错误的位置?

    谢谢

    1 回复  |  直到 14 年前
        1
  •  3
  •   Nai    14 年前

    我找不到任何方法来更改“sidebarbutton”文本属性,所以我添加了 SelectedItemTemplate中的另一个链接按钮控件指向数据列表,并在侧栏按钮中设置visible=“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
    

    由于visible=“false”,将不呈现SideBarButton,并且仅使用所需参数呈现当前步骤的ActiveSideBarButton。