【问题标题】:How do I get a ContentPlaceHolder in ASP.NET to fill the page?如何在 ASP.NET 中获取 ContentPlaceHolder 来填充页面?
【发布时间】:2011-12-05 15:30:58
【问题描述】:

我有一个母版页和许多使用它的页面。在其中一两个页面上,没有足够的内容来填满整个页面。这会导致页脚出现在屏幕中间附近,并且背景在页面底部可见。我想知道是否可以让 ContentPlaceHolder 自动生成空白以强制页脚到页面底部。我查看了母版页的代码,没有看到任何强制 ContentPlaceHolder 大小的内容。我还检查了我遇到问题的两个页面,没有看到任何明确的大小声明。我也用谷歌搜索了这个问题,没有看到任何有用的东西。也许我不知道正确的搜索词...

我在这里看到了一个类似的问题,但它是针对 DIV 标签的。我没有使用 DIV 标签。

谢谢!

<body runat="server" id="main">
    <div id="wrap">
        <form id="template_form" method="post" enctype="multipart/form-data" runat="server">
            <table id="Table1" cellspacing="0" cellpadding="0" width="800" align="center" border="0"
                runat="server">
                <tbody>
                    <tr>
                        <td valign="middle" width="800" colspan="2"><uc1:header id="Header" runat="server"></uc1:header></td>
                    </tr>
                    <tr>
                        <td width="800" colspan="2" height="7"><asp:image id="imgShadow" runat="server" 
                                Height="100%" Width="100%" ImageUrl="~/Images/new_header_shadow.jpg" 
                                AlternateText="Shadow"></asp:image></td>
                    </tr>
                    <tr><td colspan="2" style="height: 24px"><uc1:betabadge id="BetaBadge1" runat="server"></uc1:betabadge></td></tr>
                    <tr valign="top">
                        <td width="0" height="100%"><uc1:sidebar id="Sidebar1" runat="server"></uc1:sidebar></td>
                        <td class="Content" width="790" height="330"><asp:contentplaceholder id="ContentPlaceHolder1" runat="server"></asp:contentplaceholder>
                            <!-- content goes here --></td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <table cellpadding="5">
                                <tr>
                                    <td><uc1:feedback id="FeedBack1" runat="server" DESIGNTIMEDRAGDROP="259"></uc1:feedback></td>
                                </tr>
                                <tr>
                                    <td><uc1:footer id="Footer2" runat="server"></uc1:footer></td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </tbody></table>
        </form>
    </div>
</body>

【问题讨论】:

  • 请显示您的标记,或至少显示您的母版页
  • 不确定我是否可以上传任何标记代码
  • @Satanfx55:仅添加代码的相关部分;删除任何专有内容。

标签: asp.net html vb.net


【解决方案1】:

你不想用“空白”来做这件事,你会想用 CSS 做这个。

考虑将页脚停靠在页面底部。

这是一篇文章:MAKING YOUR FOOTER STAY PUT WITH CSS

【讨论】:

    【解决方案2】:

    ContentPlaceHolders 不输出任何 HTML。您应该在内容占位符周围放置一个 div 标签,然后使用 CSS 指定最小高度值。这将提供您正在寻找的空白。

    【讨论】:

    • 查看我的母版页标记...我有一个 div,里面有一个表单,里面有一个表格。内容占位符是该表中的 td。我为它指定了一个最小高度,这似乎解决了这个问题。有没有办法让它动态确定最小高度?
    • 您需要为此使用 Javascript,因为空格的数量取决于浏览器/分辨率。或者,查看猎人发布的链接。
    【解决方案3】:

    您应该改用 CSS 来执行此操作。

    看看this website。它包含您需要的一切。

    【讨论】:

      【解决方案4】:

      除了一般情况下可能真的很难做到,如果不是不可能的话,用空行填充 ContentPlaceHolder 的内容也不是真正的用户友好 - 因为真正应该显示多少可用空间可能还取决于用户的屏幕大小!

      我建议在占位符周围的容器上使用 CSS min-height 属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-28
        • 1970-01-01
        • 1970-01-01
        • 2018-10-14
        相关资源
        最近更新 更多