none
Mostrar Vista en un modal RRS feed

  • Pregunta

  • Buenas estoy trabajando en un proyecto mvc vb.net htmlvb, en el cual tengo una vista en donde uso vistas parciales para poder obtener lo que necesito,

    @Code
        ViewData("Title") = "MoverActivos"
        Layout = "~/Views/Shared/_Layout.vbhtml"
    End Code
    
    <h4>Activos por Ubicación</h4>
    
    <p> Seleccione una ubicación:    
        @Html.DropDownList("_ubicacion", selectList:=ViewBag.ubicaciones)   
    </p>
    
    <div id="activostbl"></div>

    Por medio de un script cargo la vista

      @section Scripts
    
                <link href="~/Content/Chosen/chosen.min.css" rel="stylesheet" />
                <script src="~/Scripts/chosen.jquery.min.js"></script>
    
    
                <script type="text/javascript">
    
                    $("select[name='_ubicacion']").chosen();
    
                </script>
    
                <script>
    
                    //agregar funcion para llamar el ajax cada vez que se cambie la seleccion en el combobox
                    $(document).ready(function () {
                        $("select[name='_ubicacion']").change(function () {
                            var ubicacion = $(this).children("option:selected").val();
                            verActivos(ubicacion);
    
                        });                   
    
                        function verActivos(_ubicacion) {
    
                            $.ajax({
                                type: 'GET',
                                url: '@Url.Action("moveractivos2", "activos")',
                                data: { id_ubicacion2: _ubicacion },
                                cache: false,
                                success: function (result) {
                                    $('#activostbl').html(result);
                                }
                            });
                        };
                        
                    });
                    
                </script>
    
            End Section

    El script envía un parámetro al controlador y este devuelve los datos, estos se cargan en la vista parcial para luego mostrarla

    Async Function MoverActivos2(id_ubicacion2 As Integer?) As Task(Of ActionResult)
    
                Dim db = New ControlInventariosBDEntities2
    
                ViewBag.activos = From activo In db.activos
                                  Where activo.id_ubicacion = id_ubicacion2
                                  Select activo.id_activo, activo.numero_placa, activo.descripcion
    
    
    
                Dim ubicacion1 = From ubi In db.ubicacion
                                 Select ubi.id_ubicacion, ubi.nombreubicacion
    
                ViewBag.id_ubicacion = New SelectList(ubicacion1, "id_ubicacion", "nombreubicacion")
                Return PartialView(ViewBag.activos)
    
    
            End Function

    <table class="table table-bordered">
        <thead>
            <tr>
                <td>Numero de placa</td>
                <td>Descripcion</td>
                <td>Ubicación</td>
            </tr>
        </thead>
        <tbody>
            @For Each item In ViewBag.activos
                @<tr>
                    <td>@item.numero_placa</td>
                    <td>@item.descripcion</td>
                    @*<td>@Html.DropDownList(item.id_activo, selectList:=ViewBag.id_ubicacion)</td>*@
                     <td>@Html.ActionLink("Mover de Ubicación", "MovimientoActivos2", New With {.id = item.id_activo})</td>
                </tr>
            Next
        </tbody>
    </table>

    hasta aquí trabaja bien, estoy tratando que cuando se da clic en actionlink 

    <td>@Html.ActionLink("Mover de Ubicación", "MovimientoActivos2", New With {.id = item.id_activo})</td>

    en ves de ir a la otra ventana, que esta ventana se muestre en una ventana emergente, pero esta ventana se debe cargar con la información que tiene la linea seleccionada, ejemplo seleccione la primer linea esta manda el id de ese item y con ese item se carga la información y esta se muestra en la vista o ventana emergente.

    Luego debe de enviar los datos que se cambiaron al controlador para que el los cambie.

    Saludos


    Pura vida se les agradece Saludos Luis Ángel


    jueves, 28 de marzo de 2019 20:02

Todas las respuestas

  • hola

    >>estoy tratando que cuando se da clic en actionlink

    Porque un action link ? digo sino vas a realizar ninguna invocacion a un action, solo mostrar el popup

    define un link de html y a este le agregas un click de jquery para que ejecute "verActivos()" pero es codigo cliente no del servidor

    Lo que observo en el codigo es que asignas el evento

     $("select[name='_ubicacion']").change(function () {

    o sea el change del combo, cuando deberia ser

     $("#MovimientoActivos2").click(function () {

    en este caso defines un link con el id="MovimientoActivos2"

    puedes tomar la seleccion usando

    var seleccion = $('#id_activo').val();

    define un if en el dropdownlist

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 29 de marzo de 2019 13:12
  • el problema es que a la hora que creo el vista parcial no hago manera dinámica trayendo los datos de un BD, y todos los botones tiene o action link tendrían el mismo nombre, como se podrá hacer para manejar eso??

    <table class="table table-bordered">
        <thead>
            <tr>
                <td>Numero de placa</td>
                <td>Descripcion</td>
                <td>Ubicación</td>
            </tr>
        </thead>
        <tbody>
            @For Each item In ViewBag.activos
                @<tr>
                    <td>@item.numero_placa</td>
                    <td>@item.descripcion</td>               
                    <td>@Html.ActionLink("Mover de Ubicación", "MovimientoActivos2", New With {.id = item.id_activo})</td>
                </tr>
            Next
        </tbody>
    </table>

    En vez del action link podría usar el botón, pero lo que no se es como manejar lo del id de ese botón si a la  hora de cargar la tabla son varios registros dependiendo la opción que se seleccione.

    si se logra hacer y poder identificar en js esos botones podria hacer el llamado de la información y mostrarlo en un vista parcial para poder mostrarlo en el modal?

    Saludos


    Pura vida se les agradece Saludos Luis Ángel

    viernes, 29 de marzo de 2019 14:36