区块链技术博客
www.b2bchain.cn

如何修改查询数据表的Ajax网址? – c#程序员分享

本文介绍了如何修改查询数据表的Ajax网址? – c#程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我想要做的是,如果组合框中的值发生更改,则修改数据表的sAjaxSource,然后我要调用数据表的fnDraw()函数

数据表是:

 $("#example").dataTable({              "aoColumns": [                      { "sTitle": "Id" },                       { "sTitle": "Name" }],                "bProcessing": true,              "bServerSide": true,               "sAjaxSource": '@Url.Action("FetchData", "Home")',              "sPaginationType": "full_numbers",  }); 

到目前为止,我有:
C#代码:

public JsonResult GetData(DataTableParameters param, int? SelectedId)  { //return the results } 

并且用于更改值的javascript代码是:

    $('#SelectedId').change(function () {                 alert("Hi");                 $("#example").dataTable(                     {sAjaxSource:"/home/FetchData?SelectedId=1"}).fnDraw(true); ;             }); 

它达到了alert(“ Hi”)点,但没有重绘该表。我如何使它工作?

参考方案

说明

要将API用于数据表,您首先需要具有一个句柄。
.dataTable函数返回创建的数据表的句柄。
因此,这样做

var oTable = $("#example").dataTable({     ... });  oTable.fnDraw(); 

应该允许您访问和执行特定表的功能。

信息

有充分的理由,数据表不支持在初始化后更改设置。

//This does *NOT* work. var oTable = $("#example").dataTable({     ... }); var oSettings = oTable.fnSettings(); oSettings.sAjaxSource = "some_url"; //Nothing will happen oTable.Draw(); 

但是,您可以尝试使用fnServerData函数在发送请求之前对其进行拦截,然后只要发生更改,就使用您自己的url更新表。
要么
您可以销毁该表并重新初始化它。

要了解有关fnServerData的更多信息,请click here并搜索“ fnServerData”。

我不确定这是否真的有效,我之前没有做过,但是应该有用。

var currentSource = "this_url"; var oTable = $('#example').dataTable( {     "bServerSide": true,     "bProcessing": true,     "aoColumns": [         {"sTitle": "id"},         {"sTitle": "name"}     ],     "sPaginationType": "full_numbers",     "sAjaxSource": currentSource,     "fnServerData": function ( sSource, aoData, fnCallback ) {         $.ajax( {             "dataType": 'json',             "type": "POST",             "url": currentSource,             "data": aoData,             "success": fnCallback         });     } });  $("#SelectedId").change(function)(){     currentSource = "new_url";     oTable.fnDraw(); //or fnReloadAjax() }); 

替代解决方案

一种替代方法是销毁该表,然后使用新设置将其重新初始化。但是,这是一种非常无效的处理方式。

var initParams = {     "bServerSide": true,     "bProcessing": true,     "aoColumns": [         {"sTitle": "id"},         {"sTitle": "name"}     ],     "sPaginationType": "full_numbers",     "sAjaxSource": "this_url", }; var oTable = $('#example').dataTable(initParams);  $("#SelectedId").change(function)(){     oTable.fnDestroy();     initParams.sAjaxSource = "new_url";     oTable = $('#example').dataTable(initParams); }); 

边注

当您拥有bServerSide = true时,您必须照顾好一切,这也使一切变得复杂!

编码愉快! 🙂

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

我是PHP的新手,正在尝试使用Datatables jQuery插件。我知道我必须从.php文件中获取数据,然后在数据表中使用它,但是我似乎无法通过ajax将其传递给数据表。我设法从数据库中获取数据,并对其进行json编码,但是后来我不知道如何在我的index.php文件中调用它,并在其中显示它。我究竟做错了什么?这是我的代码:HTML(已编辑): <…

我在MVC4 ASP.NET Web应用程序中使用Jquery DataTable TableTool。导出到Excel和PDF可以与Chrome完美配合。但是不能在IE和FireFox中使用。我的代码如下 dom: 'T<"clear">lfrtip', tableTools: { "sSwfP…

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要….下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

我将Datatable用于我的候选人列表,并使用地区和政党名称搜索候选人。我为此使用ajax。问题是,当没有任何搜索结果时,我无法显示“未找到结果”。我该怎么做?码:单击搜索按钮时:$(document).on("click", "#submit_filter", function(){ $(this).attr(&#…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 如何修改查询数据表的Ajax网址? – c#程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们