Hallo,
ich habe es jetzt so gelöst, dass ich die Abfrageergebnisse sequenziell in Labels.Text ablege.
In meinem Fall ist es ohnehin sinnvoll, die "ausgewählten Daten" im Webform anzuzeigen.
Weiterhin habe ich die Teile der WebSite in Panels abgelegt, die ich einfach ein- und ausblende. Ist das zu umständlich oder ein korrekter Weg?
Es scheint mir zumindest inzwischen ein üblicher und korrekter Weg zu sein, Zwischeninformationen in sichtbaren oder versteckten Textobjekten zu speichern, damit die Daten bei der nächsten "Rundreise" (also dem nächsten Seitenaufruf) noch zur Verfügung stehen. (Daneben gäbe es noch die Möglichkeit, Daten in einer Session oder Applikation zu speichern.)
Also sollte meine Lösung soweit korrekt sein.
Nun möchte ich jedoch die Anzahl der Datensätze einer SqlDataSource abfragen. Ich finde jedoch nur die Möglichkeit, die Anzahl der Zeilen eines GridViews zu ermitteln. Allerdings setze ich eine ListBox ein, die offenbar nicht die Anzahl der Records der verbunden SqlDataSource zurück gibt:
Delphi-Quellcode:
namespace;
interface
uses
System,
System.Data,
System.Configuration,
System.Web,
System.Web.Security,
System.Web.UI,
System.Web.UI.WebControls,
System.Web.UI.WebControls.WebParts,
System.Web.UI.HtmlControls;
type
_Default = public partial class(System.Web.UI.Page)
protected
method SqlDataSourceCity_Selecting(sender: System.Object; e: System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs);
method ListBoxUser_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
method ListBoxHouse_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
method ListBoxStreet_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
method ListBoxCity_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
method TextBoxPlz_TextChanged(sender: System.Object; e: System.EventArgs);
method Page_Load(sender: Object; e: EventArgs);
method DefineData;
end;
implementation
method _Default.DefineData;
var
NotFound: Boolean;
begin
NotFound := False;
PanelPlz.Visible := LabelPlz.Text <> '';
PanelCity.Visible := LabelCity.Text <> '';
PanelCitySelect.Visible := (LabelCity.Text = '') and (LabelPlz.Text <> '') and (not NotFound);
PanelStreet.Visible := LabelStreet.Text <> '';
PanelStreetSelect.Visible := (LabelStreet.Text = '') and (LabelCity.Text <> '') and (not NotFound);
PanelHouse.Visible := LabelHouse.Text <> '';
PanelHouseSelect.Visible := (LabelHouse.Text = '') and (LabelStreet.Text <> '') and (not NotFound);
PanelUser.Visible := LabelUser.Text <> '';
PanelUserSelect.Visible := (LabelUser.Text = '') and (LabelHouse.Text <> '') and (not NotFound);
end;
method _Default.Page_Load(sender: Object; e: EventArgs);
begin
if LabelPlz.Text = '' then
DefineData;
end;
method _Default.TextBoxPlz_TextChanged(sender: System.Object; e: System.EventArgs);
begin
LabelPlz.Text := TextBoxPlz.Text;
LabelCity.Text := '';
LabelStreet.Text := '';
LabelHouse.Text := '';
LabelUser.Text := '';
DefineData;
end;
method _Default.ListBoxCity_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
begin
LabelCity.Text := ListBoxCity.SelectedValue;
DefineData;
end;
method _Default.ListBoxStreet_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
begin
LabelStreet.Text := ListBoxStreet.SelectedValue;
DefineData;
end;
method _Default.ListBoxHouse_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
begin
LabelHouse.Text := ListBoxHouse.SelectedValue;
DefineData;
end;
method _Default.ListBoxUser_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
begin
LabelUser.Text := ListBoxUser.SelectedValue;
DefineData;
end;
method _Default.SqlDataSourceCity_Selecting(sender: System.Object; e: System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs);
begin
PanelNotFound.Visible := ListBoxCity.Rows = 0; // ???????????????????????????????????
PanelNotFound.Visible := SqlDataSourceCity.Records = 0; // ???????????????????????????????????
DefineData;
end;
end.
Also in der letzten Ereignisbehandlung möchte ich die Anzahl der gefundenen Datensätze ermitteln und davon abhängig die Abschnitte der Seite (Panels) ein- und ausschalten.
Anbei auch ein kleines Bild der "WebSite".
Wo finde ich denn eine Übersicht über die alle Attribute der Net.-Controls?
stahli