2017-07-30 19 views
0

私はこのような奇妙なシナリオで作業していますが、達成したいのは次のようなものです: Webgridの列には、ブートストラップモードとしてのパーシャルビューを表示します。問題は、部分ビューを表示する前にwebgridの選択した行から@ item.idを取得して、そのデータをパラメータとして渡して、そのパーシャルビュー(モーダル)でさらにデータを表示するために使用する必要があることです。アイテムデータを.net MVC WebGridから部分ビューに渡す方法

(ビュー)

<script> 
    $(document).ready(function() { 
     $('#showModal').click(function() { 
      var url = $('#caModal').data('url'); 

      $.get(url, function (data) { 
       $('#caContainer').html(data); 

       $('#caModal').modal('show'); 
      }); 
     }); 
    }); 
</script> 

<div id='caModal' class='modal fade' role="dialog" data-url='@Url.Action("AsignarCotizaciones")'> 
      <div id='caContainer'> 
      </div> 
     </div> 

@grid.Table(
        tableStyle: "table table-responsive table-bordered", 
        headerStyle: "webgrid-header", 
        footerStyle: "webgrid-footer", 
        alternatingRowStyle: "webgrid-alternating-row", 
        rowStyle: "webgrid-row-style", 
        columns: grid.Columns(
         grid.Column(header: "VENDEDOR", format: @<img src="data:image/jpeg;base64,@SIC.Controllers.CotizacionController.ConvertByteArrayToBase64(@item.id_Emp)" alt="" height="80" width="70" class="img-circle">), 
         grid.Column(columnName: "nombre_Emp", header: "NOMBRE"), 
         grid.Column(columnName: "apaterno_Emp", header: "APELLIDO"), 
         grid.Column(columnName: "nombre_Art", header: "ARTICULO"), 
         grid.Column(columnName: "nombrecli_CotIns", header: "CLIENTE"), 
         grid.Column(columnName: "fecha_CotIns", header: "FECHA"), 
         grid.Column(header: "⇨", format: @<text><button id="showModal" class="btn btn-info">Asignar</button></text>) 

(コントローラ)

[HttpGet] 
    public ActionResult AsignarCotizaciones() 
    { 
     return PartialView(); 
    } 

私は私ができる限り明示的にしようとしている、私は何ができるものはありますか?

+0

あなたが持っているファースト無効なhtml(重複する 'id'属性) - 代わりにクラス名を使用してください。値を 'data-'属性として追加してスクリプト内で抽出することができます –

答えて

0

あなたがボタンにdata-idを追加して、例えばname

grid.Column(header: "⇨", format: 
        @<text><button class="name btn btn-info" 
        data-id="@item.id_Emp">Asignar</button> 
       </text>) 

をcssクラスを追加する必要が最初にコントローラを更新

public ActionResult AsignarCotizaciones(string id) 
    { 
     // YOUR LOGIC FOR EXAMPLE 
     var model = _repository.FindAll(u => u.Id == id) 
     return PartialView(model); 
    } 

は最終的にあなたのjsを更新

  $(document).on("click", ".name", function() { 
       var id_emp = $(this).data('id'); 
       var url = $('#caModal').data('url'); 
       $.get(url, { id: d_emp }, function (data) { 
        $('#caContainer').html(data); 
        $('#caModal').modal('show'); 
       }); 
      }); 
+0

作業中ですが、パーシャルビュー内でそのパラメータ(モデル)をどのように捕捉できますか? – Carlos07

+0

私はコントローラとView iモデルリストのモデルリストを作成しました。そのモデルデータを使用することができます。ありがとうございました!! – Carlos07

関連する問題