首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生成HTML表格-行控件

生成HTML表格-行控件
EN

Stack Overflow用户
提问于 2013-02-19 08:55:54
回答 3查看 270关注 0票数 1

我正在编写一个应用程序来生成一个目录的“图像摘要”。图像摘要是一个HTML文档,其中包含该目录的图像的表。我正在尝试创建带有StreamWriter的超文本标记语言文档。我希望每行(<tr>)包含6个图像。我如何才能做到这一点?我已经找过了,但找不到有帮助的东西。

EN

回答 3

Stack Overflow用户

发布于 2013-02-19 09:03:42

我会使用ListView。像这样的东西应该会让你开始:

代码语言:javascript
运行
复制
<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>

这将为每行数据创建一个tr,其中包含单个td。显然,您希望创建六个td图像,而不是只创建一个。

票数 1
EN

Stack Overflow用户

发布于 2013-02-19 09:04:27

在我看来,最简单的方法是从Directory.GetFiles()开始。这将返回文件路径的string[]

从那里,您可以将该集合绑定到Repeater。有关每行显示n个元素的巧妙方法,请参阅this question的答案。该帖子中还有一篇文章的链接,该文章展示了如何使用ListView实现这一点。

票数 1
EN

Stack Overflow用户

发布于 2013-02-19 09:09:15

混乱的例子..但是工作正常(我假设你不是像其他人假设的那样从ASP.NET做这件事,因为你在使用StreamWriter):

代码语言:javascript
运行
复制
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>");
        }
    }

你可以这样称呼它:

代码语言:javascript
运行
复制
renderHTML(@"C:\folder", @"C:\output.html", 6, new string[] { ".jpg", ".png", ".gif" });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14948050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档