为什么即使数据源为空,gridview仍然出现?

时间:2019-11-27 10:18:28

标签: asp.net .net vb.net

                                            <asp:GridView ID="gv_Info" runat="server" Width="1240px" BorderWidth="1px"
                                            CellPadding="4" BorderColor="Gray" AlternatingItemStyle-BackColor="#f6f6eb"
                                            BackColor="#F3372A" AutoGenerateColumns="False" ShowFooter="false">
                                            <AlternatingRowStyle BackColor="White" Wrap="false" />
                                            <Columns>
                                                <asp:TemplateField HeaderText="Select">
                                                   <ItemTemplate>
                                                       <asp:CheckBox ID="chkSelectAsset" runat="server" />
                                                   </ItemTemplate>
                                                </asp:TemplateField>
                                                <asp:BoundField DataField="d" HeaderText="ATag">
                                                    <HeaderStyle HorizontalAlign="Center" />
                                                    <ItemStyle HorizontalAlign="Center" />
                                                </asp:BoundField>
                                                 <asp:BoundField DataField="c" HeaderText="Description">
                                                    <HeaderStyle />
                                                    <ItemStyle HorizontalAlign="Center" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="a" HeaderText="AType">
                                                    <HeaderStyle />
                                                    <ItemStyle HorizontalAlign="Center" />
                                                </asp:BoundField>
                                                <asp:BoundField DataField="q" HeaderText="ID">
                                                    <HeaderStyle />
                                                    <ItemStyle HorizontalAlign="Center" />
                                                </asp:BoundField>
                                </Columns>
                            </asp:GridView>


                    gv_InfoAssetsByParams.DataSource = ArrayAssets.ToList()
                    gv_InfoAssetsByParams.DataBind()

但是当ArrayAssets为空时,我想使gridview为空。所以我这样做,

            If ArrayAssets.Length > 0 Then
                gv_Info.DataSource = ArrayAssets.ToList()
                gv_Info.DataBind()


            Else
              gv_Info.DataSource = ArrayAssets.ToList()
                gv_Info.DataBind()
            End If

但是即使我将Nothing分配给数据源,它仍然会出现。如何使用标头将其清空?

2 个答案:

答案 0 :(得分:0)

ASP为空时有一个名为ShowHeader的属性。 (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.showheaderwhenempty.aspx
                                                                                         设置ShowHeaderWhenEmpty="false",应该可以。

答案 1 :(得分:0)

查看代码后,您将在IF语句中重复同样的事情。

我试图在末端复制您的问题,实际上,如果数据源为空,则网格将不可见。我认为您应该查看gridview的属性,然后从那里开始。同样,我建议使用中继器在显示数据时更好地控制可见性和布局。