2

現在、ディレクトリを調べて、リスト ボックスから .jpeg をプレビューしようとしています。リスト ボックスにディレクトリの内容が入力され、JPEG のみが表示されていますが、画像ボックスで JPEG プレビューを取得する方法がわかりません。Visual Studio 2010 で asp .net アプリケーションを使用しています。

これは私が持っているコードです

    public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DirectoryInfo infoDir = new DirectoryInfo(@"G:\Test_Directory");            
        FileInfo[] infoFile = infoDir.GetFiles("*.jpeg");
        foreach( FileInfo file in infoFile )
        {
        lstDirectory.Items.Add(file.Name);
        }                    
    }

    protected void lstDirectory_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
}

ポストバックを使用する必要があることを理解しています。誰かが助けることができれば、それは素晴らしいことです。

G: ドライブにあるファイルは jpeg で、リスト ボックスに表示されるのは jpegimage.jpeg です。

ありがとう。

4

1 に答える 1

1

このようなものはどうですか?

2 つの追加の ASP.NET ページを使用して、ほとんど Javascript でこれを行うことができると思います。

  1. まず、新しい Web ページを作成します。これを A.aspx と呼びます。このページには、クエリ文字列で画像名が渡されます。これは非常に単純です。「G:\TestDirectory」からファイルの内容を取得し、それを応答ストリームに書き込むだけです。これまでに行ったことがない場合は、これを行う方法について Stack Overflow にかなりの数の質問と回答があります。

  2. 次に、別の Web ページを作成します。これを B.aspx と呼びます。これにより、高さと幅が適切に設定されたイメージ コントロールが作成されます。また、クエリ文字列から画像名を取得します。コード ビハインドは、イメージ コントロールの ImageSource プロパティとして使用する URL を構築します。URL は A.aspx の URL になり、(URL エンコードされた) イメージ名がパラメーターとして追加されます。

  3. ASP.NET ページで、イベント ハンドラーをリストボックスに接続します。リスト ボックスで選択したインデックスが変更されたら、クライアント側で、リスト ボックスのイメージ名をパラメータとして追加した B.aspx への URL に基づいて、URL を作成します。次に、構築したばかりの URL を使用してウィンドウを開き、B をポイントして目的のファイル名を渡します。

したがって、リスト ボックスで選択されたインデックスが変更されると (またはダブルクリックするか、選択したイベントが何であれ)、javascript はページ B.aspx を含むウィンドウを開きます。ページ B には、A.aspx への URL に設定されたイメージ コントロールがあります。A.aspx は、新しいウィンドウに表示されるイメージ コントロールにイメージ コンテンツをストリーミングします。

于 2012-10-30T17:41:36.183 に答える