显示尽可能多的列以适合GridView宽度ASP.NET

时间:2013-12-13 10:06:26

标签: c# asp.net gridview

我有一个GridView,它由我的数据库中的图像填充。我当前的GridView看起来像这样:

enter image description here

但是我想要适合我的网格宽度,如下所示:

enter image description here

这是我的代码:

     <asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"  Width="100%" GridLines="None">

<Columns>

    <asp:ImageField DataImageUrlFormatString="http://myurl/{0}" DataImageUrlField="url" ControlStyle-Height="200px" ControlStyle-Width="200px">
<ControlStyle Height="200px" Width="200px"></ControlStyle>
    </asp:ImageField>

</Columns>
</asp:GridView>

任何有用的帮助。

1 个答案:

答案 0 :(得分:2)

在这种情况下,你可以使用datalist而不是gridview 3列

它与gridview几乎相同。

<asp:DataList ID="dlImages" runat="server" RepeatColumns="4" CellPadding="3" CellSpacing="3"
                                        RepeatDirection="Horizontal">
                                        <ItemTemplate>
                                            <table class="TableBorder">
                                                <tr>
                                                    <td class="NormalTextBig" valign="top" align="left">
                                                        <%#Container.ItemIndex + 1%>.
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td valign="top" align="left">
                                                        <asp:ImageButton ID="ImageButton1" runat="server" CommandName="ImageClick" CommandArgument='<%# Eval("PageName") %>' />
                                                    </td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:DataList>

结合:

  Protected Sub dlImages_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlImages.ItemDataBound
            If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then

                CType(e.Item.FindControl("ImageButton1"), ImageButton).ImageUrl = "ImageResize.aspx?ImageName=ScreenMasterImages/" & e.Item.DataItem("ImgName") & "&BoxSize=" & 300
                CType(e.Item.FindControl("ImageButton1"), ImageButton).ToolTip = e.Item.DataItem("PageName")
            End If
        End Sub

我已经将此代码用于我在项目中提到的相同目的。

<强> ItemCommand:

Protected Sub dlImages_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlImages.ItemCommand
            If e.CommandName = "ImageClick" Then
                Session("ImageName") = e.CommandArgument
                Response.Redirect("ScreenDetails.aspx")
            End If
        End Sub

它的外观如下:

enter image description here

我认为你有类似的事情要做:)