我在mvc3中使用Telerik Panel栏,我在传递Url时遇到问题? 任何人都可以帮助我如何在我看来传递Url。
答案 0 :(得分:1)
您需要在模型中动态引入控制器/动作名称,并创建并传递URL
.Items(sub =>
{
for (int i = 0; i < Model.Count(); i++)
{
sub.Add().Text(Model.ElementAt(i).DisplayText)
.Url(Url.Action(Model.ElementAt(i).ActionName, Model.ElementAt(i).ControllerName, new { id = Model.ElementAt(i).IDParam }))
}});
答案 1 :(得分:0)
如果我正确理解你的问题,我使用PanelBar和Grid做了类似的事情。在面板栏中,在OnSelect事件中放入一个js函数:
Html.Telerik().PanelBar()
.Name("PanelBar")
.ClientEvents(events =>
{
events.OnSelect("getEvent");
})
.Items(panelbar =>
{
panelbar.Add()
.Text("Header Text")
.Expanded(true)
.Items(item =>
{
item.Add()
.Text("Test1");
item.Add()
.Text("Test2");
});
}).Render();
在getEvent函数中,为每个项目分配一个变量,并为控制器上的某个动作结果创建一个ajax帖子。就我而言,我刚刚重新制作了网格。
function getEvent(e) {
panelItem = $(e.item).text();
if (panelItem == "Test1") {
var eventid1 = 1;
}
if (panelItem == "Test2") {
var eventid2 = 2;
}
//make ajax post here or something
$('#TheGrid').data('tGrid').rebind();
// $.ajax({
// url: '/Controller/Action',
// type: 'POST',
// data: {
// eventid1: eventid1,
// eventid2: eventid2,
// panelItem: panelItem
// }
// });
}
并在你的控制器中为eventids创建一个条件语句并执行你想要的操作。 希望这会有所帮助。