2012-04-02 8 views
1

Ich erkannte, dass ShowHeaderWhenEmpty nur in PostBacks funktioniert. Gibt es eine Möglichkeit, es funktionieren zu lassen, sobald die Seite geladen ist?asp.net gridview showheaderwhenempty funktioniert nur in Postback

<asp:GridView ID="GridView1"... ShowHeaderWhenEmpty="true"... > 
<EmptyDataTemplate> 
<asp:Label ID="Label1" runat="server" Text="No records found"></asp:Label> 
</EmptyDataTemplate> 

Wenn ich keine Informationen haben zu zeigen, die obige Meldung erscheint nur in Postbacks, nein, wenn die Seite geladen wird.

+0

Können Sie ein Beispiel dafür geben, was Sie gerade versuchen? Es ist schwer zu sagen, was du verlangst. – jadarnel27

+0

Bitte siehe Post aktualisiert – Somebody

+0

Danke für die zusätzlichen Informationen! – jadarnel27

Antwort

6

Hinweis: Diese Antwort geht davon aus (basierend auf Ihrer Frage) Sie binden IhreGridViewzu einer Datenquelle auf Postback, und schon gar nicht währendPage_Load. Bitte korrigieren Sie mich, wenn ich falsch liege.

Der Inhalt <EmptyDataTemplate> wird nur angezeigt, wenn Ihre GridView datengebunden ist. Wenn Sie nur auf Postback (basierend auf einer Benutzerinteraktion) Datenbindungen erstellen, besteht eine Möglichkeit zur Lösung dieses Problems darin, Ihre GridView an einen leeren (künstlichen) Datensatz zu binden, so dass die <EmptyDataTemplate> angezeigt wird.

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 

Vom MSDN article auf der Emptydatatemplate (Hervorhebung von mir):

Die leere Datenzeile in einem GridView Steuerelement angezeigt wird, wenn die Daten Quelle, die an die Steuer gebunden ist nicht enthalten irgendwelche Aufzeichnungen.

Wenn keine Datenquelle an das Steuerelement gebunden ist, ist diese Eigenschaft noch nicht relevant.

+0

Vielen Dank! – Somebody

+0

@Somenkein Kein Problem =) – jadarnel27