2016-05-06 11 views
0

私のmvc.net Webアプリケーションでは、私はブートストラップ3を使用して、タブビューの製品に関するさまざまな側面を表示しています。これは正常に動作します。ページには、タブビューと同じレイアウトの編集ページに移動する編集ボタンもありますが、各タブの部分表示には編集可能な入力/ドロップダウンなどがあります。プログラムでリンクをアクティブにする方法

マイビューの詳細ビューは次のとおりです。

<div id="productdetail"> 
    <div class="col-xs-8 col-sm-9 col-md-10 col-lg-11"> 
     <div class="tab-content"> 
      <div id="product" class="tab-pane fade in active"> 
       @Html.Partial("_productDetails", Model) 
      </div> 
      <div id="stock" class="tab-pane fade"> 
       @Html.Partial("_stockDetails", Model) 
      </div> 
      <div id="notes" class="tab-pane fade"> 
       @Html.Partial("_Notes", Model) 
      </div> 
      <div id="manufacture" class="tab-pane fade"> 
       @Html.Partial("_ManufactureDetails", Model) 
      </div> 
     </div> 
     <br /> 
    </div> 
    <div class="col-xs-4 col-sm-3 col-md-2 col-lg-1"> 
     <ul class="nav nav-pills nav-stacked"> 
      <li class="active"><a data-toggle="pill" data-theme="product" href="#product">Product</a></li> 
      <li><a data-toggle="pill" data-theme="stock" href="#stock">Stock</a></li> 
      <li><a data-toggle="pill" data-theme="notes" href="#notes">Notes</a></li> 
      <li><a data-toggle="pill" data-theme="manufacture" href="#manufacture">Manufacture</a></li> 
     </ul> 
     <br /> 
    </div> 
    <span style="float:right; margin-right:10px;"> 
     <input type="hidden" id="hd_SelectedTab" /> 
       <button type="button" class="btn btn-default" style="margin-top:2px;" onclick="goEdit('@Model.ServerDetailID')"> 
        Edit&nbsp;<span class="glyphicon glyphicon-edit"></span> 
       </button>&nbsp;|&nbsp; 
     <button type="button" class="btn btn-default" style="margin-top:2px;" onclick="location.href='@Url.Action("Index", "Home")'"> 
      Back Home&nbsp;<span class="glyphicon glyphicon-home"></span> 
     </button> 
    </span> 
</div> 

リンクをクリックすると、どのタブ(リンク)がクリックされたかを保存する次の機能があります。

$("a[data-theme]").click(function() { 
    var $selectedTab = $(this).data("theme") 
    $("#hd_SelectedTab").val($selectedTab); 
    //alert('tab Selected is now: ' + $selectedTab); 
}); 

[編集]ボタンをクリックした呼び出し、この関数...

function goEdit(sn) { 
    var tabSelected = $("#hd_SelectedTab").val(); 
    window.location = "../Details/Edit?sn=" + '@Model.ServerDetailID' + "&ts=" + tabSelected; 
} 

JSFiddle - 私の編集ビューでhttps://jsfiddle.net/DTcHh/20303/

私は今、同じタブを選択しtabSelected値を使用します。 ..すなわち、株価タブが選択され、編集ボタンがクリックされた場合、ストックタブをアクティブタブとして編集ビューが開きます。

私の編集ビューは次のとおりです。

<div id="productedit"> 
    <div class="col-xs-8 col-sm-9 col-md-10 col-lg-11"> 
     <div class="tab-content"> 
      <div id="product" class="tab-pane fade in active"> 
       @Html.Partial("_productEdit", Model) 
      </div> 
      <div id="stock" class="tab-pane fade"> 
       @Html.Partial("_stockEdit", Model) 
      </div> 
      <div id="notes" class="tab-pane fade"> 
       @Html.Partial("_NotesEdit", Model) 
      </div> 
      <div id="manufacture" class="tab-pane fade"> 
       @Html.Partial("_ManufactureEdit", Model) 
      </div> 
     </div> 
     <br /> 
    </div> 
    <div class="col-xs-4 col-sm-3 col-md-2 col-lg-1"> 
     <ul class="nav nav-pills nav-stacked"> 
      <li class="active"><a data-toggle="pill" data-theme="product" href="#product">Product</a></li> 
      <li><a data-toggle="pill" data-theme="stock" href="#stock">Stock</a></li> 
      <li><a data-toggle="pill" data-theme="notes" href="#notes">Notes</a></li> 
      <li><a data-toggle="pill" data-theme="manufacture" href="#manufacture">Manufacture</a></li> 
     </ul> 
     <br /> 
    </div> 
    <!-- Removed save button & notification panel for brevity --> 
</div> 

その後、私は、次の未完成のjavascriptを持って

$(document).ready(function() { 

    var ts = '@ViewData("TabSelected")' 

    switch(ts) { 
     case "product": 
      // select the product tab and show partial view _productEdit 
      break; 
     case "stock": 
      // select the stock tab and show partial view _stockEdit 
      break; 
     case "notes": 
      // select the notes tab and show partial view _notesEdit 
      break; 
     case "manufacture": 
      // select the manufacture tab and show partial view _manufactureEdit 
      break; 
     default: 
      // select the product tab and show partial view _productEdit 
    } 
}) 

JSFiddle - https://jsfiddle.net/os1pk3og/2/

私は実用的に正しいリンクをアクティブにし、正しい部分を表示するにはどうすればよいです見る?

私はあなたがコードの編集ビューを、次の試してみてくださいすることができ、各タブパネル

<div id="product" class="tab-pane fade @(If(ViewData("TabSelected") = "product", "in active", ""))"> 
     @Html.Partial("_ProductEdit", Model) 
</div> 

、各錠剤のリンク

<li [email protected](If(ViewData("TabSelected") = "product", "active", ""))><a data-toggle="pill" data-tabId="product" href="#product">Product</a></li> 
+0

あなたは私に1つのことを教えてください、あなたはselectedtab値を編集ビューページに渡すことができますか? –

+0

はい... GoEdit関数のコードを見ると、コントローラがViewDataとして設定するクエリ文字列のパラメタとして選択したタブを送信しています。 – Mych

+0

私はあなたがこれらを試してみてください私の答えを入れている。 –

答えて

0

に対して適切な変更を行って答えにUPDATE

ベースに: -

<div id="productedit"> 
    <div class="col-xs-8 col-sm-9 col-md-10 col-lg-11"> 
     <div class="tab-content"> 
      <div id="product" class="tab-pane fade <?php echo ($ViewData['ts'] == 'product') ? 'in active' : ''; ?>"> 
       @Html.Partial("_productEdit", Model) 
      </div> 
      <div id="stock" class="tab-pane fade <?php echo ($ViewData['ts'] == 'stock') ? 'in active' : ''; ?>"> 
       @Html.Partial("_stockEdit", Model) 
      </div> 
      <div id="notes" class="tab-pane fade <?php echo ($ViewData['ts'] == 'notes') ? 'in active' : ''; ?>"> 
       @Html.Partial("_NotesEdit", Model) 
      </div> 
      <div id="manufacture" class="tab-pane fade <?php echo ($ViewData['ts'] == 'manufacture') ? 'in active' : ''; ?>"> 
       @Html.Partial("_ManufactureEdit", Model) 
      </div> 
     </div> 
     <br /> 
    </div> 
    <div class="col-xs-4 col-sm-3 col-md-2 col-lg-1"> 
     <ul class="nav nav-pills nav-stacked"> 
      <li class="<?php echo ($ViewData['ts'] == 'product') ? 'active' : ''; ?>"><a data-toggle="pill" data-theme="product" href="#product">Product</a></li> 
      <li class="<?php echo ($ViewData['ts'] == 'stock') ? 'active' : ''; ?>"><a data-toggle="pill" data-theme="stock" href="#stock">Stock</a></li> 
      <li class="<?php echo ($ViewData['ts'] == 'notes') ? 'active' : ''; ?>"><a data-toggle="pill" data-theme="notes" href="#notes">Notes</a></li> 
      <li class="<?php echo ($ViewData['ts'] == 'manufacture') ? 'active' : ''; ?>"><a data-toggle="pill" data-theme="manufacture" href="#manufacture">Manufacture</a></li> 
     </ul> 
     <br /> 
    </div> 
    <!-- Removed save button & notification panel for brevity --> 
</div> 

あなたに役立つかもしれません、あなたに応じてPHPコードの構文を変更してください。

+0

おかげさま...私の主な質問を正しいVb Razorの構文で更新しました – Mych

+0

答えをアップしてください。 –

+0

なぜ票を上げますか...構文が正しくないのに正解とマークしました。 – Mych

関連する問題