5

パンくずリスト

上の画像のようなブレッドクラム構造になっています。フォームの進行状況、フォーム名、表示されている現在のページが表示され、プロセスの開始と終了のガイドも提供されます。

これは元々、従来のASPにまとめられていました。MVC 2でこれを再現するための最良のアプローチは何ですか-C#

以下の回答の1つに答えて:これをサイト全体にしたくないので、フォームのコレクションのブレッドクラムソリューションを探していました-たとえば、苦情用のフォームのセットまたはセットがあるかもしれませんしたがって、フォームの詳細をヘルパーや関数などに渡して、上の画像と同様の結果を出力できるようにする必要があります。

これは、証跡を生成する元のクラシックASPコードです。

Class BreadCrumb

Private dicCrumbs
Private arrIcons()
Private arrColours()

Public Sub Crumb(Text, Icon)

    dicCrumbs(Text) = Icon

End Sub

Private Sub Class_Initialize()

    Set dicCrumbs = Server.CreateObject("Scripting.Dictionary")

    ReDim arrIcons(2)
    arrIcons(0) = "images/selected-process.gif"
    arrIcons(1) = "images/unselected-process.gif"
    arrIcons(2) = "images/additional-process.gif"

    ReDim arrColours(2)
    arrColours(0) = "#0080C0; font-weight:bold"
    arrColours(1) = "#999999"
    arrColours(2) = "#999999"

End Sub

Public Sub Show()

    Dim strItem, intCrumbs
    %>
    <table style="margin-bottom:10px" class="formbreadcrumbs" cellspacing="0" cellpadding="0" border="0" summary="Bread Crumb Trail">
        <tr>
            <td align="right"><img src="images/left-process30.gif" width="30" height="20" alt=" " /></td>
    <%
    intCrumbs = 0
    For Each strItem In dicCrumbs
        intCrumbs = intCrumbs + 1
        Response.Write "        <td><img src=""" & arrIcons(dicCrumbs(strItem)) & """ width=""25"" height=""20"" alt="" "" /></td>"
        If intCrumbs < dicCrumbs.Count Then
        %>
                <td><img src="images/background-process.gif" width="40" height="20" alt=" " /></td>
                <td><img src="images/background-process.gif" height="20" width="5" alt=" " /></td>
                <td><img src="images/background-process.gif" width="40" height="20" alt=" " /></td>
        <%
        End if
    Next
    %>
            <td align="left"><img src="images/right-process30.gif" width="30" height="20" alt=" " /></td>
        </tr>
        <tr>
    <%
    intCrumbs = 0
    For Each strItem In dicCrumbs
        intCrumbs = intCrumbs + 1
        Response.Write "        <td colspan=""3"" align=""center"" style=""color:" & arrColours(dicCrumbs(strItem)) & "; line-height:0.9em; font-size:x-small"">" & strItem & "</td>"
        If intCrumbs < dicCrumbs.Count Then
        %>
                <td></td>
        <%
        End if
    Next
    %>
        </tr>
    </table>
End Sub

エンドクラス

提案/ポインタをありがとう。

4

2 に答える 2

2

真のブレッドクラムが必要な場合は、次の質問を見ることができます ( ASP.net MVC で動的ブレッドクラムを実現するにはどうすればよいですか? ) 。

それ以外にも、ロジックと部分ビューを使用してこれを実現し、部分ビューからワークフローの特定の時点で特定の画像を表示することができます。

また、巧妙な jQuery http://plugins.jquery.com/project/jBreadCrumbを見ることもできます。

于 2010-09-03T11:01:41.560 に答える
1

ブレッドクラムを格納するマスター ページのラインに沿って何かを実装し、必要に応じて各 MVC ページがドキュメントの読み込み時に何らかの JavaScript を呼び出してブレッドクラムを設定します。

jqueryを使用したため、各ページで

<script type="javascript">
$(document).ready(function(){
  setBreadCrumb(1);
});
</script>

または類似。

于 2010-09-03T11:02:22.607 に答える