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值。另一方面,根据您的回答,我在第页上找到了类似的方法。谢谢。投票+是否可以在单击时使行可编辑。。。。而不是点击按钮,即编辑?