如何在不重新加载ajax的情况下在datatable上.draw()或添加行

How to .draw() or add row on datatable without ajax reload?

本文关键字:datatable 情况下 draw 添加行 加载 新加载 ajax      更新时间:2023-09-26

在datatable上使用row.add(…),我发现它在引发draw()时使用ajax调用刷新,所以我从来没有看到新行,因为它从数据库中重新加载数据。

底层的用户体验逻辑如下:表包含可通过输入编辑的数据。输入在更改中验证,如果行中的所有输入都包含有效数据,则将新数据提交到后端,然后在服务器报告成功后从数据库中重新加载。用户希望添加新行。无法生成有效数据,也不允许空值,因此会创建一个新的空行,一旦所有输入都有有效数据,就会以相同的方式将其提交给后端。

问题:如何在不触发ajax.reload()的情况下将行添加到数据表?

我找到了一个替代解决方案:

当将数据从服务器传递到ajax调用时,我在results.Add(new AjaxTableObject());的末尾附加一个空对象,这会导致表总是显示一行额外的空数据。面向用户的javascript逻辑保持不变:一旦行的输入有效,它就会向服务器提交数据。

我不会把它标记为正确的答案,因为它没有回答发布的原始问题,但我会把它留在这里,因为它可能对其他试图做同样事情的人有用。

如果有人知道原始问题的答案,请将其发布,这将对其他应用程序有用。