显示3列的gridview

时间:2011-09-01 15:55:47

标签: asp.net vb.net gridview paging

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

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

我可以通过使用datalist获得所需的结果,但这会阻止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>

3 个答案:

答案 0 :(得分:1)

您想要使用ListView ..请在此处查看MSDN:http://msdn.microsoft.com/en-us/library/bb398790.aspx 最特别是GROUPING选项。

答案 1 :(得分:0)

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

因为它们动态包装,所以浮动DIV可以更加用户友好:如果你的用户有一个宽的高分辨率屏幕,也许图像呈现为1x6行。如果您的用户缩小浏览器窗口,DIV将自动重新排列为3x2网格。

您不会免费获得数据分页行为,但单独实现并不困难。

答案 2 :(得分:0)

你可能对使用不同的控件(转发器等)更开心......网格视图的限制在于它们与行数据源匹配。

如果 出于某种原因在gridview中执行此操作,则可以选择修改数据源中的SELECT,以便将图像放入3列。您可以使用pivot和rownumber()函数或其他方法来实现。完成后,您将修改您的grideview(再次复制模板列两次)。