0

テキストボックスに入力した内容をリストボックスに入力するこのコードがあります。私の問題は、すべてのファイルが画像listbox であるため、選択したアイテムを自分で表示するにはどうすればよいですか? image viewer何か不足していますか?

これが私のコードです:

protected void Button1_Click(object sender, EventArgs e)
    {
        ListBox1.Items.Clear();
        string[] files = Directory.GetFiles(Server.MapPath("~/images"), "*.*", SearchOption.AllDirectories);


        foreach (string item in files)
        {
            string fileName = Path.GetFileName(item);
            if (fileName.ToLower().Contains(TextBox1.Text.ToLower()))
            {
                ListBox1.Items.Add(fileName);
            }

        }
    }

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            DocumentImage.ImageUrl = Directory.GetDirectories("~/images") + ListBox1.SelectedItem.ToString();
        }
4

1 に答える 1

2

これはうまくいくはずです:

protected void Button1_Click(object sender, EventArgs e)
{
    ListBox1.Items.Clear();
    string[] files = Directory.GetFiles(Server.MapPath("~/images"), "*.*", SearchOption.AllDirectories);
    foreach (string item in files)
    {
        string fileName = Path.GetFileName(item);
        if (fileName.ToLower().Contains(TextBox1.Text.ToLower()))
        {
            string subPath = item.Substring(Server.MapPath("~/images").Length).Replace("\\","/");
            ListBox1.Items.Add(new ListItem(fileName, subPath));
        }
    }
}

この部分では、ファイル名だけでなく、ファイルが見つかったパスも必要です。私のサンプルでは、​​ファイルが見つかったサブパスが最初に設定されsubPath、リスト項目の値として保存されます。

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    DocumentImage.ImageUrl = "~/images" + ListBox1.SelectedItem.Value;
}

ここでは、サブパスを使用して正しい URL を画像に設定します。

リスト ボックスでの選択を変更したときに画像を変更するには、ページでAutoPostBackを true に設定する必要があることに注意してください。DocumentImageasxp

于 2014-09-19T07:48:37.563 に答える