0

mvc3 で Telerik パネル バーを使用していますが、Url を渡すときに問題に直面していますか?? 誰でも私のビューで URL を渡す方法を教えてください。

4

2 に答える 2

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

              }});
于 2012-07-03T12:53:26.153 に答える
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関数で、各アイテムに変数を割り当て、コントローラーなどのactionresultに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
        //                }
        //            });
}

コントローラで、eventidの条件ステートメントを作成し、必要なアクションを実行します。お役に立てれば。

于 2012-07-03T19:03:38.323 に答える