Inquiridor
Json + Jquery + Ajax + Net

Pergunta
-
Galera desculpa estar postando muitos posts, mas é que não estou conseguindo fazer o que preciso. Vou tentar explicar e postar todo meu código aqui, quem puder me ajudar eu agradeço.
1 - tenho um grid com as informações abaixo, segue minha view
@using WebProvider.BMW_Incentivo.Domain.Models @model WebProvider.BMW_Incentivo.Admin.Models.GerenciaPassagemModel @{ ViewBag.Title = "Gerenciamento de Passagens"; Layout = "~/Views/Shared/_Layout.cshtml"; } <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/css/pageDataTables.css")" media="screen" /> <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/css/tableDataTables.css")" media="screen" /> <script src="@Url.Content("~/Content/js/jquery.dataTables.js")" type="text/javascript"></script> <script src="~/Content/js/pages/GerenciadorPassagem.js"></script> @using (Html.BeginForm("Index", "GerenciaPassagem", FormMethod.Post)) { <fieldset id="passagem"> <div style="float: left;"> <label>Mês:</label> <select id="ListaPeriodo" name="ListaPeriodo" onchange="listaPassagens();"> @foreach (var item in Model.ListaPeriodo) { <option id="id" value="@item.Id">@item.DescricaoMes</option> } </select> <span class="error">* Campo Obrigatório</span> </div> <div style="float: right;"> <label>Ano:</label> <select id="ListaAno" name="ListaAno"> @*@foreach (var item in Model.Ano) {*@ <option id="id" value="@Model.Ano">@Model.Ano</option> @*}*@ </select> <span class="error">* Campo Obrigatório</span> </div> <table border="2" class="data display datatable" id="tabFiltra"> <thead> <tr> <th><span>Acao</span></th> <th><span>Participante - CPF</span></th> <th><span>Passagem</span></th> <th><span>Status</span></th> </tr> </thead> <tbody> @foreach (Passagem participante in Model.ListaParticipante) { <tr> <td> <input type="checkbox" id="@participante.Acao" name="idsCredito" @(participante.Acao == true ? "checked = 'checked' readonly='readonly' " : string.Empty) /> </td> <td> @(participante.Passagens != null ? participante.Participante.NomeCompleto + " - " + participante.Participante.CPF : "")> </td> <td> @(participante.Passagens.ToString() != "" ? participante.Passagens.ToString() : "") </td> <td> @(participante.Acao == true ? "Aprovado" : "-") </td> </tr> } </tbody> </table> <br /> <br /> <br /> <br /> <br /> <br /> <input type="button" value="Aprovar" onclick="Aprovar(); return false;" id="btAprovar" style="margin-left: 9px;" /> <input type="button" value="Recusar" id="BtRecusar" style="margin-left: 9px;" /> </fieldset> } @section Scripts { @Scripts.Render("~/bundles/knockout") @Scripts.Render("~/bundles/jqueryui") }
Estou chamando meu .js para executar o ajax e contar os checkbox que tenho checados, segue o código:
function drawTable() { dataTable = $('#tabFiltra').dataTable({ "sPaginationType": "full_numbers", "bSearchable": false, "bDestroy": true, //"bRetrieve": true, "oLanguage": { "sProcessing": "Processando...", "sLengthMenu": "Mostrar _MENU_ registros", "sZeroRecords": "Não foram encontrados resultados", "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros", "sInfoEmpty": "Mostrando de 0 até 0 de 0 registros", "sInfoFiltered": "(filtrado de _MAX_ registros no total)", "sInfoPostFix": "", "sSearch": "Buscar:", "sUrl": "", "oPaginate": { "sFirst": "«« Primeiro", "sPrevious": "« Anterior", "sNext": "Seguinte »", "sLast": "Último »»" } } }); } function RecuperarSelecionados() { var array = new Array(); $(dataTable.fnGetNodes()).find(':checkbox').each(function () { $this = $(this); if ($this.is(":checked")) array.push($this.attr('id')); }); return array; } function Aprovar() { $.ajax({ url: baseURL + 'GerenciaPassagem/AprovarPassagem', data: JSON.stringify({ idsCredito: RecuperarSelecionados() }), dataType: 'json', type: "POST", contentType: "application/json;charset=utf-8", beforeSend: function () { $.blockUI({ message: '<img src="' + url + '/Content/ajax-loader.gif" alt="Aguardando..."/>' }); }, success: function (retorno) { if (retorno.ok) { onSucess(retorno.mensagem); } else { onError(retorno.mensagem); } }, error: function (xhr, ajaxOptions, thrownError) { onError('Ocorreu um erro ao processar sua solicitação.'); }, complete: function () { clear(); $.unblockUI(); } }); }
Agora segue minha controller:
[HttpPost] public JsonResult AprovarPassagem(int[] idsCredito) { bool sucesso = true; string mensagem = "Aprovado com sucesso!"; try { } catch (Exception ex) { Trace.LogErro(ex); sucesso = false; mensagem = "Ocorreu um erro ao salvar o participante!"; } return Json(new { ok = sucesso, mensagem = mensagem }); }
Ainda não tenho nada na controler, pq estou esperando o retorna do ajax.
Bom vai a pergunta, preciso pegar os checkbox selecionados do determinado participante pq preciso fazer um update na base com essas informações. Como posso fazer isso?
Desculpa por postar tudo isso, mas é que estou precisando muito e meu prazo já estourou, se alguem puder me ajudar eu agradeço
Obrigado
SirSmart