能不能实现用linkbutton实现和hyperlink一样的连接效果(页面自动打开,文件自动上载),点击连接存储上载记录信息
能不能实现用linkbutton实现和hyperlink一样的连接效果(页面自动打开,文件自动下载),点击连接存储下载记录信息?
我想实现用linkbutton实现和hyperlink一样的连接效果(页面自动打开,文件自动下载),点击连接存储下载记录信息,并实现连接效果。
我用了两种方法,效果都不好:
1)用linkbutton,在click事件中加了脚本代码:
存储数据;
Response.Write("<script language=javascript>window.open('" + ColumnValue[4] + "','_blank')</script>");
可在xp上使用有问题,我查了一下原因,是xp本身问题:
不能使用 Window.Open 方法打开或下载一个基于 Windows XP Service Pack 2 的计算机上的一个文件
所以要避开这个方法
2)用hyperlink转到数据处理页,存储数据,用response.redirect("test.asp");转向链接页面,但也有问题,我的链接页面数据是从别人的数据库以xml形式得到的,如果只传ID,需要重新查找数据,运行很慢;如果所有数据都传过来,链接地址串又会超常,而且有非法字符。
请问有什么好办法能够一点连接,能够存储点击记录的所有数据,又能很快地转向链接页面?
------解决方案--------------------
用流的方式读取文件,再写出来
用ASP写的我没有类似代码.ASP.NET的类似这样
我想实现用linkbutton实现和hyperlink一样的连接效果(页面自动打开,文件自动下载),点击连接存储下载记录信息,并实现连接效果。
我用了两种方法,效果都不好:
1)用linkbutton,在click事件中加了脚本代码:
存储数据;
Response.Write("<script language=javascript>window.open('" + ColumnValue[4] + "','_blank')</script>");
可在xp上使用有问题,我查了一下原因,是xp本身问题:
不能使用 Window.Open 方法打开或下载一个基于 Windows XP Service Pack 2 的计算机上的一个文件
所以要避开这个方法
2)用hyperlink转到数据处理页,存储数据,用response.redirect("test.asp");转向链接页面,但也有问题,我的链接页面数据是从别人的数据库以xml形式得到的,如果只传ID,需要重新查找数据,运行很慢;如果所有数据都传过来,链接地址串又会超常,而且有非法字符。
请问有什么好办法能够一点连接,能够存储点击记录的所有数据,又能很快地转向链接页面?
------解决方案--------------------
用流的方式读取文件,再写出来
用ASP写的我没有类似代码.ASP.NET的类似这样
- C# code
System.IO.FileInfo file = new System.IO.FileInfo(fileName); if (file.Exists) { System.IO.FileStream fs = null; fs = System.IO.File.Open(fileName, System.IO.FileMode.Open); byte[] btFile = new byte[fs.Length]; fs.Read(btFile, 0, Convert.ToInt32(fs.Length)); fs.Close(); System.Web.HttpContext.Current.Response.Clear(); System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); System.Web.HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString()); System.Web.HttpContext.Current.Response.ContentType = "audio/mpeg3"; System.Web.HttpContext.Current.Response.BinaryWrite(btFile); } else { System.Web.HttpContext.Current.Response.Write("This file does not exist."); }
------解决方案--------------------
2)用hyperlink转到数据处理页,存储数据,用response.redirect("test.asp");转向链接页面,但也有问题,我的链接页面数据是从别人的数据库以xml形式得到的,如果只传ID,需要重新查找数据,运行很慢;如果所有数据都传过来,链接地址串又会超常,而且有非法字符。
可以考虑用session传值
数据不是很大的话也可以用cookie
------解决方案--------------------
- HTML code
<form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug"> <Services> <asp:ServiceReference Path="WebServiceFoundation.asmx" InlineScript="true" /> </Services> </asp:ScriptManager> <input type="button" value="Get Random" onclick="getRandom()" /> <input type="button" value="Get Range Random" onclick="getRandom(0, 9)" /> <script language="javascript" type="text/javascript"> function getRandom(minValue, maxValue) { if (arguments.length != 2) { Sample.WebServiceFoundation.GetRandom(getRandomSucceeded); } else { Sample.WebServiceFoundation.GetRangeRandom(minValue, maxValue, getRandomSucceeded); } } function getRandomSucceeded(result) { alert(result); } </script> </form>