在 onblur 期间始终从可编辑的 DataTable 中检索旧值(但不是新值)
Posted
技术标签:
【中文标题】在 onblur 期间始终从可编辑的 DataTable 中检索旧值(但不是新值)【英文标题】:Always retrieving old value (but not new value) from editable DataTable during onblur 【发布时间】:2013-07-25 10:58:13 【问题描述】:我目前正在尝试创建具有可编辑列的 DataTable。我能找到的最佳示例位于 DataTables 自己的网站上:http://www.datatables.net/release-datatables/examples/api/editable.html。
除了我现在唯一的问题是以某种方式捕获用户输入的新值,并且 onblur 将新值发送到服务器端之外,一切都运行良好。发送过来的值始终是 original 值,而不是用户输入的 new 值。注意:我使用 handler.ashx 处理程序来检索新值在服务器端。
这是我显示数据表的代码:
$(document).ready(function()
var oTable = $('#example').dataTable(
"sAjaxSource": "displayTable.ashx",
"aoColumns": [
"sTitle": "examCode",
"sTitle": "division" ,
],
"fnDrawCallback": function()
$('td').editable( 'handler.ashx',
"submitdata": function ( value, settings )
return
examCode: $(this).parent().find(":first").text(),
columnPosition: oTable.fnGetPosition( this )[2],
newValue: value
;
,
onblur : "submit",
);
);
);
这是我的 handler.ashx 代码:
public class Handler : IHttpHandler
public string editExamCode(HttpContext context)
String newValue = context.Request.Form.Get("newValue");
注意到我“提交”了 onblur 并且值被传递给了 newValue 变量?始终传递的值始终是原始值,而不是用户输入的新值。
有没有办法解决这个问题?
谢谢 - 任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:我认为你根本不需要 newValue: value。
试试这个代码:
$(document).ready(function()
var oTable = $('#example').dataTable(
"sAjaxSource": "displayTable.ashx",
"aoColumns": [
"sTitle": "examCode",
"sTitle": "division" ,
],
"fnDrawCallback": function()
$('td').editable( 'handler.ashx',
"submitdata": function ( value, settings )
return
examCode: $(this).parent().find(":first").text(),
columnPosition: oTable.fnGetPosition( this )[2]
;
,
onblur : "submit",
);
);
);
然后处理程序将只查找“值”变量:
public class Handler : IHttpHandler
public string editExamCode(HttpContext context)
String newValue = context.Request.Form.Get("value");
【讨论】:
哇,好用。说真的,我昨天花了半天时间试图弄清楚这一点!以上是关于在 onblur 期间始终从可编辑的 DataTable 中检索旧值(但不是新值)的主要内容,如果未能解决你的问题,请参考以下文章
我们如何从可编辑的 Java 代码中生成 IntelliJ IDEA 中的序列图?