【问题标题】:Displaying gridview with 3 columns显示 3 列的网格视图
【发布时间】:2011-09-01 15:55:47
【问题描述】:

我有一个包含大量缩略图的画廊,我想一次显示 6 个。

我使用下面的代码进行了这项工作,但我无法将图像显示为 2 行,每行 3 - 它显示为 6 行,每行 1。

我可以通过使用数据列表来获得所需的结果,但这会使 pageindex 函数停止工作。

我确信有一个简单的解决方案,但我想不通。

<asp:GridView id="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="6" onpageindexchanging="PageIndexChanged" PagerSettings-Mode="NextPrevious" PagerSettings-NextPageText="Next"  PagerSettings-PreviousPageText="Previous">
    <Columns>
        <asp:TemplateField>
            <itemtemplate>
                <asp:Image ID="Image2" runat="server" ImageUrl='<%# Eval("userID", "/imageUpload/Handler.ashx?userID={0}&image=2")%>' ></asp:Image>
            </itemtemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

【问题讨论】:

    标签: asp.net vb.net gridview paging


    【解决方案1】:

    您想使用 ListView.. 在这里查看 MSDN:http://msdn.microsoft.com/en-us/library/bb398790.aspx 尤其是 GROUPING 选项。

    【讨论】:

      【解决方案2】:

      您可能需要考虑使用简单的 asp.net 转发器控件,并将您的项目呈现为 DIV。您可以使用 CSS“float”指令使您的 DIV 在其容器中自动“换行”,以有效地适应空间(非常类似于文本到达行尾时在文本框中“换行”的方式)。

      因为它们是动态换行的,所以浮动的 DIV 可以更方便用户使用:如果您的用户有一个高分辨率的宽屏幕,那么图像可能会呈现为 1x6 行。如果您的用户缩小浏览器窗口,DIV 将自动重新排列成 3x2 网格。

      你不会免费获得数据分页行为,但它本身并不难实现。

      【讨论】:

        【解决方案3】:

        如果使用不同的控件(中继器等),您可能会更满意... Gridview 的局限性在于它们逐行匹配您的数据源。

        如果您出于某种原因必须在网格视图中执行此操作,则一种选择是修改数据源中的 SELECT,以便将图像放入 3列。您可以使用 pivot 和 rownumber() 函数或其他方式来做到这一点。一旦你这样做了,你就会修改你的 grideview(再复制你的模板列两次)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-13
          • 2018-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多