如何从右到左显示 RadListView

Posted

技术标签:

【中文标题】如何从右到左显示 RadListView【英文标题】:How to display RadListView right to left 【发布时间】:2015-07-11 10:58:21 【问题描述】:

我正在使用 Telerik RadListView(标准 ASP.NET ListView 中的元素相同)来显示数据库中的一些数据。我想以平铺布局显示它们,但它从左到右加载项目。

例如 - 如果我连续有 4 个项目,则第 5 个项目显示在左侧。我尝试将dir="rtl" 添加到所有 div 中,但这不起作用。

我怎样才能让这个加载项从右到左?

这是我的代码:

<telerik:RadListView ID="RadListView1" runat="server" AllowPaging="True" AllowCustomSorting="True" AllowMultiFieldSorting="True" AllowNaturalSort="True" DataKeyNames="product_key" DataSourceID="DS_pure_product" PageSize="12">
    <LayoutTemplate>
        <div class="RadListView RadListViewFloated RadListView_Default" dir="rtl">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-md-6">
                        <telerik:RadDataPager ID="RadDataPager1" runat="server" SEOPagingQueryPageKey="CurrentPageKey" PageSize="12">
                            <Fields>
                                <telerik:RadDataPagerButtonField FieldType="FirstPrev" LastButtonImageUrl="" NextButtonImageUrl="" PrevButtonImageUrl="" />
                                <telerik:RadDataPagerButtonField FieldType="Numeric" LastButtonImageUrl="" NextButtonImageUrl="" PrevButtonImageUrl="" />
                                <telerik:RadDataPagerButtonField FieldType="NextLast" LastButtonImageUrl="" NextButtonImageUrl="" PrevButtonImageUrl="" />
                                <%--<telerik:RadDataPagerGoToPageField />
                                <telerik:RadDataPagerNumericPageSizeField />--%>
                            </Fields>
                        </telerik:RadDataPager>
                    </div>
                    <div class="col-md-3">
                        <table>
                            <tr>
                                <td>
                                </td>
                                <td>
                                </td>
                            </tr>
                        </table>
                    </div>
                    <div class="col-md-3">
                    </div>
                </div>
            </div>
            <div class="rlvFloated">
                <div class="container-fluid" dir="rtl" style="text-align:right;">
                    <div class="row">
                        <div id="itemPlaceholder" runat="server">
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </LayoutTemplate>
    <ItemTemplate>
        <div class="rlvI col-md-3 lv_items">
            <asp:Button ID="SelectButton" runat="server" CausesValidation="False" CommandName="Select" CssClass="rlvBSel" Text=" " ToolTip="Select" />
            <table class="tbl_product">
                <tr>
                    <td>
                        <asp:Image ID="Image2" CssClass="img-responsive img_product" runat="server" ImageUrl='<%# Eval("product_img") %>' />
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Image ID="Image1" runat="server" CssClass="img_product_logo" ImageUrl='<%# Eval("product_brand") %>' />
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("product_name") %>' />
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label2" runat="server" Text='<%# Eval("product_price") %>' />
                    </td>
                </tr>
            </table>
        </div>
    </ItemTemplate>
    <EmptyDataTemplate>
        <div class="RadListView RadListView_Default">
            <div class="rlvEmpty">
                There are no items to be displayed.</div>
        </div>
    </EmptyDataTemplate>
</telerik:RadListView>

【问题讨论】:

这可能有助于提供您想要的外观与实际外观的图片。如果您只想让所有内容都对齐,那是一回事。如果您希望项目以不同的顺序显示,那就另当别论了。 我试图添加图像,但我不允许...因为我必须有 100 人口或类似的东西。 :( 啊,是的,很抱歉。 this 是你想要的吗?请注意绿色、橙色和蓝色框如何与红色框的右侧对齐。 感谢您的快速回复....我不知道您的代码是如何工作的(我对 css 不太擅长)但我使用您的代码进行了一些更改并设置了 float:right 现在它工作得很好......非常感谢...... 太好了,很高兴你让它工作了! CSS 最终会开始变得更有意义。坚持下去。如果对您有所帮助,请务必将答案标记为已接受。欢迎使用 ***! 【参考方案1】:

在 cmets 中进行了一些对话后,听起来您想要的是右对齐您的内容。在这种情况下,float: right 就是您要查找的内容。

关键是要有一个可以容纳所有数据的整体容器。然后,为每一行设置另一个容器。这个内部容器是你将漂浮到右边的东西。通过不给内部容器一个宽度,它会变得和它的孩子一样大。如果内部容器的宽度小于其父容器的宽度,则会显示为向右对齐。

下面是一个例子。

.body 
    height: 100px;
    width: 500px;
    background-color: red;


.child-container 
    height: 100%;
    float: right;


.child-1 
    height: 50%;
    width: 100px;
    float: left;
    background-color: green;


.child-2 
    height: 50%;
    width: 100px;
    float: left;
    background-color: orange;


.child-3 
    height: 50%;
    width: 100px;
    float: left;
    background-color: blue;
<div class="body">
    <div class="child-container">
        <div class="child-1">
        </div>
        <div class="child-2">
        </div>
        <div class="child-3">
        </div> 
    </div>
</div>

【讨论】:

以上是关于如何从右到左显示 RadListView的主要内容,如果未能解决你的问题,请参考以下文章

如何在div中从右到左显示图像

如何使用 Swift 在文本字段(从右到左)上输入货币格式?

如何使用 Swift 在文本字段(从右到左)上输入货币格式?

PrimeFaces MenuItem从右到左显示

Excel 互操作从右到左文档

Python中从右到左的语言