方法1:js同步调用
触发:
onclick="javascript:share(\'<%# Eval("id_File") %>\')"
页面函数:
function share(id_File) {
var a = \'<%= ShareDoc("\' + id_File + \'") %>\';
alert(a);
}
后台cs函数:
public string ShareDoc(string id_File)
{
return "后台函数[" + id_File + "]";
}
方法2:JQuery ajax异步调用
触发:
onclick="javascript:download(\'<%# Eval("FileNewName") %>\',\'<%# Eval("FileExtName") %>\')"
前台函数:
function download(p1, p2) {
$.ajax({
url: \'MyDocList.aspx/DownloadDoc\',
contentType: \'application/json; charset=utf-8\',
datatype: \'json\',
type: \'POST\',
data: \'{FileNewName:"\' + p1 + \'",FileExtName:"\' + p2 + \'"}\', //参数
success: function(result) {//成功后执行的方法
alert(result.d); // 后台返回值
},
error: function(result) {//失败执行的方法
alert("error:" + result.responseText);
}
});
}
后台cs函数:
[WebMethod]
public static string DownloadDoc(string FileNewName, string FileExtName)
{
string filePath = Server.MapPath(string.Format("~/FileUpload/{0}.{1}", FileNewName, FileExtName));
if (System.IO.File.Exists(filePath))
{
FileInfo file = new FileInfo(filePath);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); //解决中文乱码
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name)); //解决中文文件名乱码
Response.AddHeader("Content-length", file.Length.ToString());
Response.ContentType = "appliction/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
}
return filePath;
}