我试图从ASP.NET Gridview行发送AJAX请求。 gridview中的每一行显示已完成的作业。有些作业具有可下载的文件。这里的最终目标是显示一个colorbox覆盖图中的下载URL,但是我现在只是将文件列表返回到基页。要显示从订单下载文件,请取消隐藏订单号列中的按钮控件。页面上的Javascript如下。asp.net页面不返回ajax请求
$(document).ready(function() {
$("#<%=gvMessenger.ClientID%> input").filter(":not(:has(table, th))").click(function (e) {
e.preventDefault();
var $cell = $(e.target).closest("td");
//$("#<%=gvMessenger.ClientID%> td").removeClass("highlight"); $cell.addClass("highlight"); $("#message").text('You have selected: ' + $cell.text());
$("#Message").html("");
var orderID = $cell.text()
orderID = $.trim(orderID);
sendData(orderID);
function sendData(orderID) {
var loc = window.location.href;
loc = (loc.substr(loc.length - 1, 1) == "/") ?
loc + "CompletedOrdersNew.aspx" : loc;
$.ajax({
type: "POST",
url: loc + "/GetFiles",
data: "{'orderID':'" + orderID + "'}",
contentType: "application/jason; charset=utf-8",
datatype: "json",
success: function (msg) {
$("ContentArea").html(msg.d);
},
error: function() {
alert("An error occured in getting your files.");
}
});
}
});
});
在页面代码隐藏应该开枪Ajax请求如下的功能。
<WebMethod()> _
Public Shared Function GetFiles(ByRef orderID As Integer) As String
Dim dict As New Dictionary(Of String, Object)
Dim dt As DataTable
dt = Dac.ExecuteDataTable("GetS3Files", Parameter("@OrderID", orderID))
Dim arrr(dt.Rows.Count) As Object
For i As Integer = 0 To dt.Rows.Count - 1
arrr(i) = dt.Rows(i).ItemArray
Next
Dim json As New JavaScriptSerializer
Return json.Serialize(dict)
End Function
看着萤火虫的页面当我看到请求外出的GetFiles函数将订单号{“的orderID”:“10000315”}
POST http://localhost:57210/AMSSite/Customer/CompletedOrdersNew.aspx/GetFiles
但呼叫没有火GetFiles函数和我得到的响应是页面html。
不知道这里发生了什么。
感谢您对数字格式的更正。我提出了更正建议,但仍然没有开启函数GetFiles,并且将页面html取回为我的响应。订单ID现在作为数字发送。 – DougM 2013-02-18 19:57:44