0

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

我已经将“.Action”与面板栏的“项目”一起使用,但不幸的是这引发了错误。为方便起见,下面显示一小部分代码(主要关注倒数第二行)。抛出的错误是:

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;" })**

由于我的网站是一个冲浪网站,我想同时打开冲浪店主页并放下子菜单。为此,我使用相同的 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";
}**

附言。被调用的 MVC 控制器必须在 ViewData 中传回一个值,以便切换 PanelBar 的 selectedIndex 属性。这样才能在执行重定向时打开正确的面板。

希望这可以帮助...

于 2012-08-18T21:48:22.073 回答