Gridview错误消息

时间:2014-08-07 00:43:36

标签: asp.net gridview adventureworks

当我进行产品搜索时,我的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>

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

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