Telerik PanelBar:可以将项目重定向到新页面吗?

时间:2012-06-19 14:34:57

标签: telerik panelbar

在我的应用程序中,我希望程序将用户重定向到新页面并在单击/选择panelBar ITEM时滑动打开SUBITEMS列表。但是,我不确定应该如何实施。

我使用了“.Action”以及我的panelBar的“item”,但遗憾的是这会引发错误。为方便起见,下面显示了一小部分代码(主要关注最后一行)。抛出的错误是:

  

用户代码

未处理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”不起作用。所以我的问题是,我应该如何让项目参加活动?

1 个答案:

答案 0 :(得分:1)

以下是我如何使用javascript执行此操作的片段,它运行正常。我并不怀疑还有其他方法可以做到这一点。所以你知道,这个片段来自我正在做的MVC应用程序。我还包括样式代码,以便您知道可以执行此操作。我意识到你并没有要求提供这种功能,只是认为它可能有助于你更好地理解财产。

让我们说我想要字体粗体,没有边框,我们想要捕获鼠标事件来执行重定向。

要处理样式,我只需添加项目,然后使用HtmlAttributes属性设置样式。

以下是样式代码......

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

由于我的网站是冲浪网站,我想打开冲浪商店主页并删除子菜单 同时。为此,我使用相同的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控制器必须在ViewData中传回一个值才能切换PanelBar的selectedIndex属性。这样就可以在执行重定向时打开正确的Panel。

希望这会有所帮助......