asp.net gridview showheaderwhenempty仅适用于回发

Som*_*ody 1 vb.net asp.net gridview

我意识到ShowHeaderWhenEmpty仅适用于PostBacks.加载页面后有什么方法可以使它工作吗?

<asp:GridView ID="GridView1"... ShowHeaderWhenEmpty="true"... >
<EmptyDataTemplate>
<asp:Label ID="Label1" runat="server" Text="No records found"></asp:Label>
</EmptyDataTemplate>
Run Code Online (Sandbox Code Playgroud)

当我没有要显示的信息时,上面的消息只出现在PostBacks中,当页面加载时没有.

Jos*_*ell 6

注意:此答案假定(基于您的问题)您将绑定 GridView 到PostBack上的数据源,而不是在期间 Page_Load. 如果我错了,请纠正我.

<EmptyDataTemplate>内容只显示一次你GridView已经被数据绑定.如果你只是在Postback上进行数据绑定(基于一些用户交互),解决这个问题的一种方法就是将你GridView的数据集绑定到一个空的(人工)数据集上,这样<EmptyDataTemplate>就会显示出来.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack
        Dim table As New DataTable
        GridView1.DataSource = table
        GridView1.DataBind()
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

从关于EmptyDataTemplate 的MSDN文章(强调我的):

GridView绑定到控件数据源不包含任何记录时,空数据行将显示在控件中.

如果没有绑定到控件的数据源,则此属性尚不相关.