Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过单击DataTable同一行上的“编辑”按钮获取Id值_Javascript_Jquery_Asp.net Mvc_Datatable_Datatables - Fatal编程技术网

Javascript 如何通过单击DataTable同一行上的“编辑”按钮获取Id值

Javascript 如何通过单击DataTable同一行上的“编辑”按钮获取Id值,javascript,jquery,asp.net-mvc,datatable,datatables,Javascript,Jquery,Asp.net Mvc,Datatable,Datatables,我使用jquerydatatable列出记录,并添加一个Action按钮(编辑)在模式对话框上编辑记录。如果我选择一行,我可以获得行id值,并在模式对话框中打开相关记录。但是,如果我直接单击编辑按钮,我无法获取相关记录的Id值(在同一行上),因为在单击编辑按钮时没有首先选择它。我想做的是:我想获得我单击编辑按钮所在行的Id值。可能吗?如果没有,我是否可以在单击Edit按钮时以编程方式选择悬停行?(如果前面的场景是可能的,我更喜欢它)。有什么想法吗 function openModal() {

我使用
jquerydatatable
列出记录,并添加一个
Action
按钮(编辑)在模式对话框上编辑记录。如果我选择一行,我可以获得行id值,并在模式对话框中打开相关记录。但是,如果我直接单击
编辑
按钮,我无法获取相关记录的Id值(在同一行上),因为在单击
编辑
按钮时没有首先选择它。我想做的是:我想获得我单击编辑按钮所在行的Id值。可能吗?如果没有,我是否可以在单击
Edit
按钮时以编程方式选择悬停行?(如果前面的场景是可能的,我更喜欢它)。有什么想法吗

function openModal() {

    var table = $('#dtbListAccount').DataTable();
    var oRow = $('this').parents('tr')[0];
    var oData = table.fnGetData(oRow);

    //code omitted for brevity
};

同时将行id分配给编辑按钮,为编辑按钮编写单击事件,该事件基于单击按钮的id触发编辑功能/视图


您可以在呈现自身时将行id分配给按钮,也可以在页面加载时编写一个小函数来执行相同的操作。

如果id位于父容器上,则找到它的值并使用它。如果是兄弟姐妹,则执行相同的操作。

您可以使用此代码来实现这一点

var table;
$(document).ready( function () {
 table  = $('#example').DataTable();
} );

$('body').on('click', '#btnEdit', function(){
    //to get currently clicked row object
    var row  = $(this).parents('tr')[0];

    //for row data
    console.log( table.row( row ).data() );

});
它将以字符串数组的形式返回行数据


使用浏览器控制台查看结果。

以下是完整的源代码。希望这有帮助:)

//单击按钮(此处编辑按钮)时。。。。注意:按钮也不需要id,只需使用标签即可
$(“表按钮”)。单击(函数(){
var tr=$(this.nexist('tr');
var id=tr.children('td:eq(0)').text();//从当前行的第一列获取文本
console.log(id);//您将在这里获得实际的id
});

身份证件
名称
姓
行动
1.
汉斯
扬森
编辑
2.
罗伯特
博伊尔斯塔特
编辑
3.
吉姆
亚历克西
编辑

var-oRow=$('this')。父项('tr')[0];var oData=oTable.fnGetData(oRow)
请参阅编辑按钮
oData
包含单击行的数据
oData
包含
id
以及
0索引
非常感谢,但遇到“TypeError:dataTable.fGetData不是函数”错误。您能看看我上面的Javascript方法参数吗?实际上您使用的是更高版本的datatable。等等,让我给你举个例子……你能把例子代码添加到你的答案中吗?我不熟悉jQuery Datatable。你能不能把它的DOM结构发布到文档中,包括编辑按钮所在的位置。非常感谢你的回答,但是我在mmushtaq的回答的帮助下解决了这个问题。投票+你能把示例代码添加到你的答案中吗?你太棒了!。。非常感谢您的努力和完善的解决方案,并提供了完整的演示:)@mmushtaq,为什么每个按钮都有相同的id?@Dragon,这样我就可以在每个表行按钮单击时获取行数据。您可以将类分配给button。这似乎也是一个优雅的解决方案,但总是返回“1”作为id值。另一方面,根据您的回答,我在第页上找到了类似的方法。谢谢。投票+是否可以在单击时使行可编辑。。。。而不是点击按钮,即编辑?