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サーバーにhtml用のバイトがあり、バイトを取得してC:ローカルにファイルを作成することです。次に、ローカルの html ファイルを新しいウィンドウで開きたいと思います。

バイトを取得してファイルを作成するのは問題ないようです。しかし、ハイパーリンクを使用しても何も起こりません。ローカル ファイルを開くことができないと聞きました。そのため、代わりにボタンを使用しようとしましたが、ボタンを使用してクリックイベントを作成すると、クリックイベントにもなりませんでした。

とにかくファイルを保存せずに開くことができればそれは素晴らしいことですが、それができない場合は問題ありません。

4

1 に答える 1

2

私はあなたのリンクを文字列に入れるだけです。次のようにする必要があります。c:\\test.html

リンクを文字列に変換したら、次のことを試してみます。System.Diagnostics.Process.Start(link);

それが機能しない場合は、コードを中断して文字列の内容を取得します。これをアドレスバーに貼り付けて、何が起こるかを確認します。

于 2013-01-10T21:34:44.383 に答える