【问题标题】:How can I display two asp:Panel controls side by side?如何并排显示两个 asp:Panel 控件?
【发布时间】:2013-05-14 13:22:23
【问题描述】:

我有两个面板。我想向他们展示并列,但他们没有。

.aspx:

<asp:Panel ID="treeviewMenu" Width="20%" Height="500" runat="server" ScrollBars="Both" HorizontalAlign="Left">
    <asp:TreeView ID="treeview" runat="server" ShowLines="True" ImageSet="XPFileExplorer" OnSelectedNodeChanged="treeview_SelectedNodeChanged">
    </asp:TreeView>
</asp:Panel>

<asp:Panel ID="qvObjektMenu" Width="75%" Height="500" runat="server"  HorizontalAlign="Right">
    <asp:Table runat="server" HorizontalAlign="Right">
        <asp:TableRow>
            <asp:TableCell>
                <asp:Label runat="server">
                    QVObjekt Id:
                </asp:Label>
            </asp:TableCell>
            <asp:TableCell>
                <asp:Label ID="qvObjektId" runat="server"></asp:Label>
            </asp:TableCell>
        </asp:TableRow>
    </asp:Table>
</asp:Panel>

我在这两个元素之外使用了一个表格,围绕它们的另一个面板,没有任何作用。 我该如何解决这个问题?

【问题讨论】:

  • asp:Panel 转换为 div 默认情况下是块级 html 元素,这迫使它们相互对齐。您需要通过使用定位的 span display: inline-block; position: relative; 元素包围它们来覆盖该行为,或者将它们本身变成内联块元素。
  • 你的意思是这个
    ,也就是不工作
  • 您可以根据需要将style="display: inline-block;" 直接添加到您的asp:Panels。如果您以另一种方式进行操作,则每个 asp:Panel 都需要 2 个元素。 Jeffrey Blake 举了一个例子来说明我的意思。

标签: c# asp.net css


【解决方案1】:

这里的答案是 CSS。如何在 CSS 中执行此操作有几个选项。

选项 1:display:inline-block;

该css的一个选项是使用display: inline-block;

<style type="text/css">
   .inlineBlock { display: inline-block; }
</style>

再加上在&lt;asp:Panel ...&gt;标签中设置:

<asp:Panel ID="treeviewMenu" ... CssClass="inlineBlock">
    ...
</asp:Panel>

<asp:Panel ID="qvObjektMenu" ... CssClass="inlineBlock">
    ...
</asp:Panel>

选项 2a:float:left;

Wim's answer 中提到的另一个选项是使用浮点数。但我不认为你想将两个面板组合起来有浮动 - 我怀疑你只想要一个或另一个。要么:

<style type="text/css">
.floatLeft { float: left; }
</style>

<asp:Panel ID="treeviewMenu" ... CssClass="floatLeft">
    <asp:TreeView ID="treeview" runat="server" ShowLines="True" ImageSet="XPFileExplorer" >
    </asp:TreeView>
</asp:Panel>

(与当前在您的标记中的另一个面板)

选项 2b:float:right;

<style type="text/css">
.floatRight { float: right; }
</style>

 <asp:Panel ID="qvObjektMenu" ... CssClass="floatRight">
    ...
</asp:Panel>

【讨论】:

    【解决方案2】:

    面板将呈现为 DIV 元素,因此使用 css float:leftfloat:rightmargin 应该可以工作。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多