0

当我进行产品搜索时,我的 EmptyDataTemplate 中的文本在我搜索之前就出现了!任何人都可以阐明这种情况吗?

<asp:GridView ID="gvProducts" runat="server" CellPadding="4" DataSourceID="sdsProducts" ForeColor="#333333" GridLines="None">
    <AlternatingRowStyle BackColor="White" />
    <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
    <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
    <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
    <SortedAscendingCellStyle BackColor="#FDF5AC" />
    <SortedAscendingHeaderStyle BackColor="#4D0000" />
    <SortedDescendingCellStyle BackColor="#FCF6C0" />
    <SortedDescendingHeaderStyle BackColor="#820000" />
     <EmptyDataTemplate>
         <asp:Label Text="Sorry, no results found" SkinID="ErrorMessage" runat="server" />
     </EmptyDataTemplate>
     </asp:GridView>

谢谢。

4

1 回答 1

1

这是因为您绑定数据源的方式。当您DataSourceID="sdsProducts"在 GridView 的标记中声明数据源时,该数据源将在每次页面加载时将其数据绑定到您的 GridView。

因此,当您的页面第一次加载时,您的数据源会检索一组空数据并将其绑定到 GridView,从而显示您的 EmptyDataTemplate。

另一种方法是通过后面的代码进行绑定。这样您就可以准确地告诉它何时要绑定,如果您愿意,可以避免在第一页加载时进行任何绑定。

于 2014-08-07T03:30:53.537 回答