[英]jquery jtable custom click event action routing
这是在此处回答的问题的后续问题:
我不仅需要在按下按钮时执行alert(),还需要将操作路由回类似于listAction或DeleteAction的服务器。
1)如何设置按钮单击以触发此自定义操作? 2)是否可以传递警报示例(data.record.tableID)之类的值?
像这样,但是我只是组成了一个名为jTableAjax的函数名,我需要知道一个真正的类似jtable函数来触发一个动作ajax调用:
CustomAction: {
title: 'Refresh',
width: '1%',
sorting: false,
create: false,
edit: false,
list: true,
display: function (data) {
if (data.record) {
return '<button title="Refresh '+data.record.table+'" class="jtable-command-button jtable-edit-command-button" onclick="jTableAjax('/myurlserverpath/myaction',' + data.record.tableID + '); return false;"><span>Refresh '+data.record.table+'</span></button>';
}
}
}
我最终使用了内置在ajax处理程序中的jquery,然后在jtable上重新加载,如下所示:
在jtable customfield定义上,我调用了自己的refreshTable函数:
display: function (data) {
if (data.record) {
return '<button title="Refresh'+data.record.table+'" class="jtable-command-button jtable-edit-command-button" onclick="refreshTable(data.record.table); return false;"><span>Refresh '+data.record.table+'</span></button>';
}
然后,我使用jquery处理ajax请求以执行一些服务器端mojo,然后如果成功,请重新加载jtable:
function refreshTable(table) {
$.post("/myurlpath/refreshTable", "table="+table,
function(results)
{
$('#MyTableDiv').jtable('reload');
}
, "json");
}
我在文章中为了代码的可读性而省略了ajax错误处理,但这可以满足我的需要(从自定义jtable按钮向服务器发出调用)。
这已经很老了,但是我有类似的任务,所以我将分享我的解决方案。 通常,您不应该在按钮中添加“ onclick”。 最好给按钮属性设置相同的值,比如说'name =“ button1”'并将按钮id设置为记录的ID,即'id =“ data.record.Id”'。 比起您可以使用jQuery .live事件http://api.jquery.com/live/ ,它将在所有这些元素上附加处理程序。 您应该最终得到与此类似的东西
$('[name="button1"]').live('click', function() {
var id = $(this).attr('id');
});
拥有行ID可让您在下一步操作上有很大的自由度。
如果您需要处理通过jTable POST请求获得的当前存储在jTable中的数据(例如某些隐藏字段,未显示的数据等),则也可以轻松地访问它。 它很简单
var row = $('#NoteTable').jtable('getRowByKey', id).data('record');
中提琴,涉及到行数据时,您可以访问所有可能需要的东西。 您也可以通过向服务器发送请求来获取此数据(因为我们获得了ID),但这会产生不必要的流量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.