Ich habe AspxGridView auf meiner Seite. Ich möchte, dass Benutzer in der Lage sind, einige Daten in dem Webformular einzurichten, und nachdem sie eine Taste gedrückt haben, werden die Daten vom Bildschirm gelesen, validiert und das Geschäftsobjekt wird erstellt. Dieses Objekt verfügt über eine GetData() - Funktion und gibt ein Array mit Objekten zurück, die Zeilen in einem Raster darstellen.
Ich möchte ASPXGrid nicht auffüllen, bis Benutzer auf die Schaltfläche klickt. Ich weiß, dass ich DataSourceId in der Entwurfszeit auf Null setzen kann - aber dann verlor ich die Verfügbarkeit von Spalten mit Synchronisierungsraster mit Objekteigenschaften (ich kann einige Spalteneigenschaften für neue Spalten nicht hinzufügen oder bearbeiten). Ich weiß, dass ich das ObjectCreating-Ereignis abfangen kann und Raster mit einem gefälschten Objekt bereitstellen kann, das leere Datensätze zurückgibt. Aber gibt es elegantere Lösungen?Verhindern, dass AspxGridView beim Laden der Seite geladen wird
Antwort
Wann machst du den DataBind()
Anruf? Könnten Sie das nicht einfach in einen if
Block stellen, um sicherzustellen, dass es nur beim Postback passiert?
if(Page.IsPostBack) {
DoDataBindingStuff();
}
Wenn ich DataSourceId Datenbindung festlegen wird automatisch hinter meinem Rücken gemacht. Jetzt setze ich DataSourceId nicht zur Entwurfszeit, sondern mache es auf Runtine, wenn der Benutzer auf meine Schaltfläche klickt. – smok1
Sie könnten versuchen, das OnDataBinding-Ereignis Ihrer Datenquelle abzubrechen, wenn die Seite kein Postback ist. Ich bin mir nicht sicher, ob Ihre Spaltenüberschriften angezeigt würden ... –
Ich fürchte, Sie müssen ein wenig klären. Was füllt die Gridview genau? Und wann genau wollen Sie verhindern, dass es bevölkert wird? – Harv
Füllen des gri - d. H. Füllen mit Daten. Ich möchte es beim Laden der Seite nicht tun. Ich möchte eine elegantere Lösung haben, dann DataSourceId in der Entwurfszeit auf Null setzen und dann einstellen, nachdem der Benutzer auf die entsprechende Schaltfläche geklickt hat. – smok1
Also, die Idee ist, dass Sie die Datenquelle setzen und das leere Gitter mit den Headern, aber nicht mit Daten gefüllt haben? Denn sonst könnten Sie einfach die Sichtbarkeit auf dem Raster auf false setzen, bis Sie auf die Schaltfläche klicken. – Harv