url传入telerik asp.net mvc面板

时间:2012-07-03 11:55:22

标签: asp.net-mvc-3 telerik telerik-mvc

我在mvc3中使用Telerik Panel栏,我在传递Url时遇到问题? 任何人都可以帮助我如何在我看来传递Url。

2 个答案:

答案 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创建一个条件语句并执行你想要的操作。 希望这会有所帮助。