2012-07-03 5 views
0

Я использую панель Telerik Panel в mvc3, и я столкнулся с проблемой при передаче Url ?? может кто-нибудь, пожалуйста, помогите мне, как я могу передать Url на мой взгляд.Url, проходящий в telerik asp.net mvc panel

+0

что такое URL. в чем проблема. Ваш вопрос очень расплывчатый – Tassadaque

+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 })) 

       }}); 
+0

, но в этом случае я надеюсь, что страница будет путешествовать, и вся страница будет обновлена. Но я не хочу путешествовать по своей странице. –

+0

См. Это http://www.telerik.com/community/forums/aspnet-mvc/panelbar/panelbar-item-with-url-from-ajax-action.aspx – Tassadaque

0

Если я правильно понимаю ваш вопрос, я сделал что-то похож на это с помощью PanelBar и Grid.In в панель бар, поставить функцию JS в OnSelect события:

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, назначить переменную для каждого элемента и сделать АЯКС пост к ActionResult на контроллере или что-то. В моем случае я просто переработал сетку.

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 и выполнить требуемое действие. Надеюсь, это поможет.

Смежные вопросы