在ASP.Net向导侧栏模板中设置LinkBut​​ton标题

时间:2009-08-12 16:05:35

标签: asp.net

在ASP.Net中自定义向导控件的外观,我发现如何使用SideBarTemplate禁用侧边栏按钮并捕获OnItemDataBound事件。一切都很简单。我现在要做的是修改渲染的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文本的空字符串,但样式更改有效。

我是否尝试将文字设置在错误的位置?

由于

1 个答案:

答案 0 :(得分:3)

我没有找到任何方法来更改“SideBarButton”文本属性,这就是我添加的原因 另一个链接按钮控件在SelectedItemTemplate到DataList并在SideBarButton中设置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。