【问题标题】:I am trying to make the tabs of an asp.net wizard clickable links but it doesn't seem to work我正在尝试使 asp.net 向导的选项卡可单击链接,但它似乎不起作用
【发布时间】:2013-12-18 09:31:12
【问题描述】:

我在网上找到了一个很棒的 asp.net 向导模板,它可以将向导步骤从侧面移到顶部。它在顶部时没有点击功能。我正在尝试使选项卡可点击链接,但它似乎不起作用。

这是向导的 sn-p:

<HeaderStyle BackColor="#FFCC66" BorderColor="#FFFBD6" BorderStyle="Solid" 
         BorderWidth="2px" Font-Bold="True" Font-Size="0.9em" ForeColor="#333333" 
         HorizontalAlign="Center" />

     <HeaderTemplate>
           <ul id="wizHeader">
               <asp:Repeater ID="SideBarList" runat="server">
                   <ItemTemplate>
                      <li><a class="<%# GetClassForWizardStep(Container.DataItem) %>"     
      title="<%#Eval("Name")%>">
                           <%# Eval("Name")%></a> </li>
                   </ItemTemplate>
               </asp:Repeater>
           </ul>
       </HeaderTemplate>

        <NavigationButtonStyle BackColor="White" BorderColor="#CC9966" 
         BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="1.2em"
         ForeColor="#990000" CssClass="centerButtons" />

     <SideBarButtonStyle ForeColor="White" />
     <SideBarStyle BackColor="#990000" Font-Size="0.9em" VerticalAlign="Top" />
    <WizardSteps>

下面是一些代码:

Private Sub wizClaims_PreRender(sender As Object, e As System.EventArgs) Handles  
    wizClaims.PreRender
    Dim SideBarList As Repeater = 
        TryCast(wizClaims.FindControl("HeaderContainer").FindControl("SideBarList"), 
           Repeater)
    SideBarList.DataSource = wizClaims.WizardSteps
    SideBarList.DataBind()
End Sub

Public Function GetClassForWizardStep(wizardStep As Object) As String
    Dim [step] As WizardStep = TryCast(wizardStep, WizardStep)

    If [step] Is Nothing Then
        Return ""
    End If
    Dim stepIndex As Integer = wizClaims.WizardSteps.IndexOf([step])

    If stepIndex < wizClaims.ActiveStepIndex Then
        Return "prevStep"
    ElseIf stepIndex > wizClaims.ActiveStepIndex Then
        Return "nextStep"
    Else
        Return "currentStep"
    End If
End Function

我会很感激任何帮助:-)

【问题讨论】:

    标签: asp.net vb.net wizard


    【解决方案1】:

    我认为最简单的解决方案:

    1. 使用&lt;linkbutton&gt; 而不是&lt;a&gt;,这样会生成回发:

      <asp:LinkButton runat="server" 
      CssClass="<%# GetClassForWizardStep(Container.DataItem) %>">
         <%# Eval("Name")%>
      </asp:LinkButton> 
      
    2. 将事件附加到转发器:

      <asp:Repeater ID="SideBarList" runat="server" 
        OnItemCommand="SideBarList_ItemCommand">
      
    3. 在后面的代码中,响应事件:

      Protected Sub SideBarList_ItemCommand(source As Object, 
                                            e As RepeaterCommandEventArgs)
        wizClaims.ActiveStepIndex = e.Item.ItemIndex
      End Sub
      

    现在单击任何链接按钮将更改向导的活动步骤。

    【讨论】:

      猜你喜欢
      • 2020-06-28
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多