2

从我之前的问题(使用 JavaScriptSerializer 创建 json),在.ashx文件中我使用以下方法打印 json 对象:

context.Response.ContentType = "application/json";
context.Response.Write(json);

.ashx从 default.aspx 调用这个文件,它的<head>标签中有一些 javascript 函数。 我的问题是
之后我将如何从 .ashx 文件中调用 javascript 函数context.Response.Write(json);

更新
我的最终目标是实现DataTable 的服务器端处理。我想使用 javascript 函数将行与上下文菜单绑定。为此,我使用以下代码调用.ashx文件:

 $('#example').dataTable({
            'bProcessing': true,
            'bServerSide': true,
            'sAjaxSource': '/data.ashx'
        });
4

2 回答 2

1

你在使用ajax请求吗?在这种情况下,您可以使用 javascript 中可用的成功方法,如 w3schools 中的以下示例所示:

function showHint(str)
{
var xmlhttp;
if (str.length==0)
  { 
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    // You can call your custom method here...  
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","gethint.asp?q="+str,true);
xmlhttp.send();

}

或者,如果您使用的是 jquery:

$.ajax({
  url: "test.html",
  context: document.body
}).done(function() { 
  // You can call your custom method here... 
  $(this).addClass("done");
});

更新

查看:http ://datatables.net/usage/callbacks 可以使用的方法是:fnInitComplete

例如

$('#example').dataTable({
            'bProcessing': true,
            'bServerSide': true,
            'sAjaxSource': '/data.ashx',
            'fnInitComplete' : function() {
                alert('Your menu population code here!');
             }
        });
于 2012-10-17T11:14:58.893 回答
0

你可以使用

eval

在客户端将响应评估为 javascript。但我怀疑你真的需要或想要这个,它可能不是一个非常优雅的解决方案。那么你想归档什么?

于 2012-10-17T11:02:01.153 回答