Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我试图使asp.net向导的选项卡可单击链接,但它没有';好像不行_Asp.net_Vb.net_Wizard - Fatal编程技术网

我试图使asp.net向导的选项卡可单击链接,但它没有';好像不行

我试图使asp.net向导的选项卡可单击链接,但它没有';好像不行,asp.net,vb.net,wizard,Asp.net,Vb.net,Wizard,我在网上找到了一个很棒的asp.net向导模板,它可以将向导步骤从一侧移动到顶部。当它位于顶部时,它始终没有单击功能。我试图使标签页链接可点击,但它似乎不工作 以下是向导的一个片段: <HeaderStyle BackColor="#FFCC66" BorderColor="#FFFBD6" BorderStyle="Solid" BorderWidth="2px" Font-Bold="True" Font-Size="0.9em" ForeColor="#33333

我在网上找到了一个很棒的asp.net向导模板,它可以将向导步骤从一侧移动到顶部。当它位于顶部时,它始终没有单击功能。我试图使标签页链接可点击,但它似乎不工作

以下是向导的一个片段:

<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
Private子wizClaims\u PreRender(发送方作为对象,e作为System.EventArgs)句柄
维茨克莱姆·普雷恩德
作为中继器的Dim侧边栏列表=
TryCast(wizClaims.FindControl(“HeaderContainer”).FindControl(“侧栏列表”),
中继器)
SideBarList.DataSource=wizClaims.WizardSteps
SideBarList.DataBind()
端接头
公共函数GetClassForWizardStep(wizardStep作为对象)作为字符串
将[step]调暗为WizardStep=TryCast(WizardStep,WizardStep)
如果[步骤]什么都不是,那么
返回“”
如果结束
Dim stepIndex As Integer=wizClaims.WizardSteps.IndexOf([step])
如果stepIndexwizClaims.ActiveStepIndex然后
返回“下一步”
其他的
返回“当前步骤”
如果结束
端函数

我将非常感谢任何帮助:-)

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

  • 使用
    而不是
    ,以便生成回发:

    <asp:LinkButton runat="server" 
    CssClass="<%# GetClassForWizardStep(Container.DataItem) %>">
       <%# Eval("Name")%>
    </asp:LinkButton> 
    
  • 现在,单击任何链接按钮将更改向导的活动步骤

    <asp:Repeater ID="SideBarList" runat="server" 
      OnItemCommand="SideBarList_ItemCommand">
    
    Protected Sub SideBarList_ItemCommand(source As Object, 
                                          e As RepeaterCommandEventArgs)
      wizClaims.ActiveStepIndex = e.Item.ItemIndex
    End Sub