0

私のアプリケーションでは、プログラムでユーザーを新しいページにリダイレクトし、panelBarITEMがクリック/選択されたときにSUBITEMのリストをスライドして開きます。ただし、これをどのように実装する必要があるのか​​わかりません。

panelBarの「item」と一緒に「.Action」を使用しましたが、残念ながらこれはエラーをスローします。便宜上、コードのごく一部を下に表示します(主に最後から2番目の行に注目してください)。スローされるエラーは次のとおりです。

HttpExceptionはユーザーコードによって処理されませんでした

  <% Html.Telerik().PanelBar()
            .Name("PanelBar")
            .SelectedIndex(0)
            .Items(item =>
            {
                item.Add()
                    .Text("Home").Action("Index", "Home")
                    .Items(subItem =>
                     {
                         subItem.Add().Text("My Profile").Action("MyProfile", "Profile");
                         subItem.Add().Text("Test");
                     });

                item.Add()
                    .Text("Orientation").Action("Index", "Orientation")
                    .Items(subItem =>
                    {
                        subItem.Add().Text("GridView");
                        subItem.Add().Text("Scheduler");
                        subItem.Add().Text("Docking");
                        subItem.Add().Text("Chart");
                    });                

            }).Render();
    %>

この場合、「。Action」が機能していないようです。だから私の質問は、どのようにアイテムをイベントに取り入れさせるべきかということです。

4

1 に答える 1

1

これは、JavaScriptを使用してこれを行う方法のスニペットであり、うまく機能します。これを行う他の方法があることにも異議を唱えません。ご存知のように、このスニペットは私が行っている MVC アプリからのものです。スタイリングコードも含めて、それができることを認識してもらいました。あなたはその機能を求めていたわけではなく、プロパティの理解を深めるのに役立つかもしれないと思っただけだと思います.

フォントを太字にして境界線をなくし、マウス イベントをトラップしてリダイレクトを実行したいとします。

スタイルを処理するには、項目を追加して、HtmlAttributes プロパティでスタイルを設定するだけです。

これがスタイリングのコードです...

**item.Add()     
    .Text("Surf Shop")     
    .HtmlAttributes(new { style = "font-weight: bold; border:none;" })**

私のサイトはサーフィン サイトなので、Surf Shop のホームページを開き、同時にサブメニューをドロップしたいと考えています。これを行うには、同じ HtmlAttributes 属性プロパティを使用して、onmousedown イベント イベント ハンドラーにフックします。次に、ロードするコントローラー名を渡してハンドラーを呼び出します。すべてのページがインデックスと呼ばれるため、コントローラーのみが必要です。ただし、ここに完全な文字列を渡して、単純にリダイレクトすることもできます。あなたの髪を吹き飛ばすものは何でも... :-)

イベントハンドラへのフックを含むコードは次のとおりです...

**item.Add()
    .Text("Surf Shop")
    .HtmlAttributes(new { onmousedown="onBaseNavItemClick('SurfShop');" })** 

最後に、スタイリングとイベント ハンドラーへのフックの両方を含む完全なコードを次に示します。

**item.Add()
    .Text("Surf Shop")
    .HtmlAttributes(new { style = "font-weight: bold; border:none;",onmousedown="onBaseNavItemClick('SurfShop');" })**

イベントハンドラ関数

**function onBaseNavItemClick(itemText)
{
    window.location = BASE_URL + itemText + "/index";
}**

ps。呼び出される MVC コントローラーは、PanelBar の selectedIndex プロパティを切り替えるために、値を ViewData に戻す必要があります。これは、リダイレクトが実行されたときに正しいパネルが開くようにするためです。

お役に立てれば...

于 2012-08-18T21:48:22.073 に答える