2013-01-10 45 views
1

我想制作一个按钮或超链接来打开本地html文件。我尝试了一切,但没有一个不工作。试图使用LinkBut​​ton,Button和Hyperlink。下面是我尝试过的代码。动态添加超链接或按钮打开本地文件?

byte[] buffer = (byte[])data.GetValue(i); 
File.WriteAllBytes(@"C:\test.html", buffer); 
//LinkButton sysInfo = new LinkButton(); 
//sysInfo.Text = "Please click to see more info"; 
//sysInfo.CommandName = "ID"; 
//sysInfo.CommandArgument = id.ToString(); 
//sysInfo.Command += new CommandEventHandler(sysInfo_Click); 
//sysInfo.Click += new EventHandler(this.sysInfo_Click); 

HyperLink link = new HyperLink(); 

link.Target = "_blank"; 
link.Text = "Please click to see more information"; 
link.Attributes.Add("onclick", "window.open('" + ResolveUrl("file:///c:/test.html") + "');"); 
link.NavigateUrl = ResolveUrl("file:///c:/test.html"); 
fieldCl.Controls.Add(link); 
//sysInfo.Click += new EventHandler(sysInfo_Click); 
//sysInfo.CommandName = "ID"; 
//sysInfo.CommandArgument = id.ToString(); 
//sysInfo.Command += new CommandEventHandler(sysInfo_Click); 

什么,我试图做的是有SQL Server中的HTML字节和检索字节来创建C文件:地方。然后我想在新窗口中打开本地html文件。

似乎可以检索字节并创建一个文件。但是当我使用超链接时,它什么都不做。我听说它不会允许我打开本地文件。所以我试图使用按钮,但是当我使用按钮并创建Click事件时,它甚至没有进入Click事件。

如果无论如何只是打开文件而不保存,这将是伟大的,但如果不能,那很好。

+0

是否要打开一个弹出窗口或下载HTML文件? – chamara

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

+0

您好查马拉我只是想打开一个弹出窗口与保存在sql server上的html文件。我保存了html文件作为sql中的二进制文件并试图打开它。有没有任何方法没有保存?谢谢 – warang

回答

2

我只是把你的链接放到一个字符串中。这将只是需要:c:\\test.html

一旦你的链接成一个字符串我会尝试:System.Diagnostics.Process.Start(link);

如果不工作,我就会把代码中的突破和抢字符串的内容 - 粘贴到你的地址栏,看看会发生什么。

+0

嗨,谢谢你的回答。你想让我把Process.Start放在哪里?使用超链接或按钮?我无法使用hyperlink.NavigateUrl = Process.Start();因为它只允许放置字符串。我已经使用了断点并尝试过,但仍然无法正常工作。任何其他建议?谢谢 – warang

+1

System.Diagnostics.Process.Start只适用于Windows窗体应用程序,并且只能在本地机器上运行在ASP.NET中。一旦将应用程序发布到服务器,它就需要工作。 – chamara