当我进行产品搜索时,我的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>
感谢。
答案 0 :(得分:1)
这是因为您绑定数据源的方式。当您在GridView的标记中声明类似DataSourceID="sdsProducts"
的数据源时,每次页面加载时,该数据源都会将其数据绑定到GridView。
因此,当您的页面第一次加载时,您的数据源将检索一组空数据并将其绑定到GridView,显示您的EmptyDataTemplate。
另一种方法是通过后面的代码进行绑定。通过这种方式,您可以准确地告诉它何时绑定,如果您愿意,可以避免对第一页加载进行任何绑定。