1

ディレクトリの「イメージ概要」を生成するアプリケーションを作成しています。画像の概要は、そのディレクトリの画像を含むテーブルを含む HTML ドキュメントです。StreamWriter を使用して HTML ドキュメントを作成しようとしています。各行 ( <tr>) に 6 つの画像が含まれるようにします。どうすればこれを達成できますか?私は検索しましたが、役立つものを見つけることができません。

4

3 に答える 3

1

乱雑な例..しかし動作します(を使用しているため、他の人が想定しているように、ASP.NETからこれを行っていないと想定していますStreamWriter):

static void renderHTML(string folder, string outputFile, int imagesPerRow, params string[] extensions) {
        string[] images = Directory.GetFiles(folder);

        using (var sw = new StreamWriter(File.OpenWrite(outputFile))) {
            sw.WriteLine("<!html><head><title>Example</title></head><body><table>");
            int counter = 0;
            sw.Write("<tr>");
            foreach (string image in images.Where(x => extensions.Any(y => x.Contains(y)))) {
                if (counter == imagesPerRow) {
                    sw.Write("</tr>");
                    sw.Write("<tr>");
                    counter = 0;
                }
                sw.Write("<td style=\"border: 1px solid;\">");
                sw.Write(string.Format("<img src=\"{0}\" />", image));
                sw.Write("</td>");

                counter++;
            }
            sw.Write("</tr></table></body></html>");
        }
    }

次のように呼び出すことができます。

renderHTML(@"C:\folder", @"C:\output.html", 6, new string[] { ".jpg", ".png", ".gif" });
于 2013-02-19T01:09:14.660 に答える
1

私はListViewを使用します。このようなものから始める必要があります:

<asp:ListView runat="server" ID="ListView1" DataSourceID="SqlDataSource1">
  <LayoutTemplate>
    <table runat="server" id="table1" >
      <tr runat="server" id="itemPlaceholder" ></tr>
    </table>
  </LayoutTemplate>
  <ItemTemplate>
    <tr runat="server">
      <td runat="server">
        <asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("ImageUrl") %>' />
      </td>
    </tr>
  </ItemTemplate>
</asp:ListView>

これは、データのすべての行に対して単一の td を持つ tr を作成するだけです。1 つだけではなく、画像を含む 6 つの td を作成したいことは明らかです。

于 2013-02-19T01:03:41.913 に答える
1

私の意見では、最も簡単な方法は、Directory.GetFiles()から始めることです。string[]これにより、ファイル パスが返されます。

そこから、そのコレクションを Repeater にバインドできます。行ごとに n 個の要素を表示する巧妙な方法については、この質問への回答を参照してください。そのスレッドには、ListView でそれを行う方法を示す記事へのリンクもあります。

于 2013-02-19T01:04:27.233 に答える