在我的应用程序中,我希望程序将用户重定向到新页面并在单击/选择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”不起作用。所以我的问题是,我应该如何让项目参加活动?
答案 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。
希望这会有所帮助......