我有一个包含大量缩略图的图库,我想一次显示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>
答案 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(再次复制模板列两次)。