Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 2
            [id] => 519686
            [titulo] => Como pegar o conteúdo de uma coluna (id) ao clicar em um link exibido em outra coluna?
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-05-13 08:39:22
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 397347
            [status] => A
            [isExample] => 
            [NomeUsuario] => Randrade
            [Apelido] => 
            [Foto] => 397347_20150704190512.png
            [Conteudo] => Bom, acho essa forma um pouco "complexa", se essa for a palavra que quero dizer. Mas, basta você selecionar o Obj[ ] por linha, e retornar via ajax para a action que você necessita. Seu dataTable ficaria assim:

[code]<script type="text/javascript">
$(document).ready(function () {
$('#myDataTable').dataTable({
bProcessing: true,
sAjaxSource: '@Url.Action("Index1", "Default1")',
aoColumns: [
null, // first column (RoleId)
null, // second column (RoleName)
null, // third (UserId)
null, // fourth (UserName)

{ // fifth column (Edit link)
"sName": "RoleId",
"bSearchable": false,
"bSortable": false,
"fnRender": function (oObj)
{
// oObj.aData[0] returns the RoleId
return "<a href='/Edit?id="
+ oObj.aData[0] + "'>Edit</a>";
}
}

]
});
});
</script>[/code]

Caso tenha alguma dúvida, [url:descricao=este tutorial]http://www.codeproject.com/Articles/155422/jQuery-DataTables-and-ASP-NET-MVC-Integration-Part[/url] explica como fazer isso.
E [url:descricao=nesta resposta]http://stackoverflow.com/a/21472488/4843158[/url], explica como fazer também.

Qualquer dúvida, pode retornar que te ajudo novamente. ) )

Como pegar o conteúdo de uma coluna (id) ao clicar em um link exibido em outra coluna?

Diogenes
   - 12 mai 2015

Oi.
Estou utilizando JQuery dataTable, no ASP.NET MVC 5 para exibir uma tabela, em uma das colunas eu acrescentei um link para editar o registro. Mas não estou conseguindo incluir no link o id do registro.
Alguém pode me dar alguma orientação sobre isso.
Antecipadamente, agradeço.
Diógenes

Post mais votado

Randrade
   - 13 mai 2015

Bom, acho essa forma um pouco "complexa", se essa for a palavra que quero dizer. Mas, basta você selecionar o Obj[ ] por linha, e retornar via ajax para a action que você necessita. Seu dataTable ficaria assim:

#Código<script type="text/javascript">
$(document).ready(function () {
$('#myDataTable').dataTable({
bProcessing: true,
sAjaxSource: '@Url.Action("Index1", "Default1")',
aoColumns: [
null, // first column (RoleId)
null, // second column (RoleName)
null, // third (UserId)
null, // fourth (UserName)

{ // fifth column (Edit link)
"sName": "RoleId",
"bSearchable": false,
"bSortable": false,
"fnRender": function (oObj)
{
// oObj.aData[0] returns the RoleId
return "<a href='/Edit?id="
+ oObj.aData[0] + "'>Edit</a>";
}
}

]
});
});
</script>


Caso tenha alguma dúvida, este tutorial explica como fazer isso.
E nesta resposta, explica como fazer também.

Qualquer dúvida, pode retornar que te ajudo novamente.

Randrade
   - 12 mai 2015

Bom, se você está utilizando um dataTable padrão, basta você adicionar este código em sua tabela:

#Código
<table>
<thead>
<tr>
<th>
Código
</th>
<th>
Nome
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Codigo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Nome)
</td>
<td align="center">
<a href="@Url.Action("Editar", new {id = item.Codigo})" class="btn btn-primary btn-xs">
<span class="glyphicon glyphicon-user" />
Editar
</a>
<a href="@Url.Action("Editar", new {id = item.Codigo})" class="btn btn-danger btn-xs">
<span class="glyphicon glyphicon-trash" />
Excluir
</a>
</td>
</tr>
}

</tbody>
</table>


Neste exemplo eu estou utilizando Bootstrap, para deixar um "visual" melhor. Porém, o importante é esta linha:
#Código<a href="@Url.Action("Editar", new {id = item.Codigo})" class="btn btn-danger btn-xs">
<span class="glyphicon glyphicon-trash" />
Excluir
</a>


Onde você chama a Action, em meu caso "Editar", e passa o id da linha, no "new {id = item.Codigo})".

Qualquer dúvida, poste seu dataTable que faço um exemplo baseado em seu código.

P.S: Você pode usar isso com Html.ActionLink, Url.Action, Ajax, e o que mais você quiser.

Diogenes
   - 12 mai 2015

Obrigado Randrade, mas não tem como usar essa solução no meu caso.
Vou mandar o meu código para você ver.

#Código

@{
ViewBag.Title = "Index";
}

<h2>jQuery DataTables/ASP.NET MVC Integration</h2>

<div id="container">
<div id="demo">
@using (Html.BeginForm("Localiza", "Home", FormMethod.Post))
{
<hr />

<table id="myDataTable" class="display">
<thead>
<tr>
<th>ID</th>
<th>Estado</th>
<th>Cidade</th>
<th>Bairro</th>
<th>Nome</th>
<th>CEP</th>
<th>Endereço</th>
<th>Telefone</th>
<th>Celulares</th>
<th>Editar</th>
</tr>
</thead>
<tbody></tbody>
<tfoot>
<tr>
<th>ID</th>
<th>Estado</th>
<th>Cidade</th>
<th>Bairro</th>
<th>Nome</th>
<th>CEP</th>
<th>Endereço</th>
<th>Telefone</th>
<th>Celulares</th>
<th>Editar</th>
</tr>
</tfoot>
</table>
}
</div>
</div>

@section Scripts
{
<script type="text/javascript" src="~/Scripts/jquery-2.1.3.js"></script>
<script type="text/javascript" src="~/Scripts/jquery-ui-1.11.4.js"></script>
<script type="text/javascript" src="~/Scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="~/Scripts/jQuery.dataTables.min.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.dataTables.columnFilter-1.5.6.js"></script>
<script type="text/javascript" src="~/Scripts/dataTables.tableTools.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.jeditable.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.dataTables.editable.js"></script>
<script type="text/javascript" src="~/Scripts/indexDT.js"></script>
}


#Código
$(document).ready(function () {

var oTable = $('#myDataTable').dataTable({
"bStateSave": false,
"bJQueryUI": true,
"bServerSide": true,
"sAjaxSource": "DataTable/AjaxHandler",
"bProcessing": true,
"bSort": true,
"sPaginationType": "full_numbers",
"order": [[1, "asc"], [2, "asc"], [3, "asc"], [4, "asc"] ],
"oLanguage": {
"oPaginate": {
"sFirst": "Primeira",
"sLast": "Última",
"sNext": "Próxima",
"sPrevious": "Anterior"
},
"sEmptyTable": "Nenhum registro encontrado",
"sInfo": "Mostrando _START_ até _END_ de _TOTAL_ registros",
"sLoadingRecords": "Aguarde, carregando registros ...",
"sZeroRecords": "Nenhum registro encontrado",
"sInfoFiltered": "(selecionados de _MAX_ registros",
"sProcessing": "Processando ...",
"sSearch": "Filtro:",
"sLengthMenu": 'Mostrar <select>' +
'<option value="10">10</option>' +
'<option value="20">20</option>' +
'<option value="30">30</option>' +
'<option value="40">40</option>' +
'<option value="50">50</option>' +
'<option value="-1">All</option>' +
'</select> registros por página'

},
"aoColumns": [
{
"sName": "IdPF",
"bSearchable": false,
"bSortable": false
},
{
"sName": "LogrUF",
"bSearchable": true,
"bSortable": true,
"asSortng": ["asc", "desc"]
},
{
"sName": "LogrCidade",
"bSearchable": true,
"bSortable": true,
"asSortng": ["asc", "desc"]
},
{
"sName": "LogrBairroInicio",
"bSearchable": true,
"bSortable": true,
"asSortng": ["asc", "desc"]
},
{
"sName": "Nome",
"bSearchable": true,
"bSortable": true,
"asSortng": ["asc", "desc"]
},
{
"sName": "LogrCEP",
"bSearchable": false,
"bSortable": false
},
{
"sName": "Endereco",
"bSearchable": false,
"bSortable": false
},
{
"sName": "Telefone",
"bSearchable": false,
"bSortable": false
},
{
"sName": "Celular",
"bSearchable": false,
"bSortable": false
},
{
"sName": "Editar",
"bSearchable": false,
"bSortable": false,
"mData": null,
"mRender": function (data, type, full) {
return '<td><a href="#" class = "glyphicon glyphicon-pencil" >editar</a></td>';
}
}
]
}).columnFilter({
sPlaceHolder: "head:before",
aoColumns: [
null,
{ type: "select", values: ["AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PE", "PI", "PR", "RJ", "RN", "RO", "RR", "RS", "SC", "SE", "SP", "TO"] },
{ type: "text" },
{ type: "text" },
{ type: "text" },
null,
null,
null,
null,
null
]}).makeEditable();

});



Muito obrigado.
Diógenes

Diogenes
   - 13 mai 2015

Muito obrigado.

Vou testar esta solução.

Abraços.

Adriano Cordeiro
|
MVP
Pontos: 200
    13 set 2016

Fiz um teste e não funciona:
#Código$('.glyphicon-pencil').on('click',function () {
alert('oi');
});