Hi miteinander,
ich habe zwei aspx-Seiten, Default.aspx und dummy.aspx. Ich will nun durch Klick
auf einen Button in Default.aspx einen Postback nach dummy.aspx machen und dabei
einen Event in dummy.aspx auslösen.
Wenn ich in einer aspx-Seite ein Objekt instanzieren will, dann mach ich das derzeit
mit dem Code-Tag <% %>, z.B so:
Default.aspx:
...
...
<%
...
...
dummy myDummy = new dummy();
%>
<asp:Button ID="button1" runat="server" Text="Postback"
PostBackUrl="~/pages/dummy.aspx" onclick="myDummy.button1_Click" />
Dann kann ich innerhalb der aspx-Seite z.B. ein Event der anderen Klasse aufrufen,
wenn ich das Objekt myDummy aber in der CodeBehind-Datei Default.aspx.cs definiere,
kann ich es in der aspx-Seite nicht benutzen.
Meine 2 Fragen dazu sind nun:
Danke und Grüße,
wiesi
Hallo wiesi
- Wieso sind Objekte / Member aus der CodeBehind-Datei nicht in der dazugehörigen
aspx-Seite sichtbar?
Sie müssen zumindest "protected" sein, dann sollte das eigentlich funktionieren.
- Wie kann ich ein beliebiges Objekt innerhalb einer aspx-Seite definieren, ohne <% %> .... mit <asp>-Tags?
Das verstehe ich jetzt nicht ganz.
Wenn meine Glaskugel Recht hat, such mal nach: UserControl, CustomControl, ...
BTW: Inline Code ist schlecht, damit hast du keine Trennung zwischen Design oder Code mehr. Benutze lieber die Codebehind Datei und die zur Verfügung gestellten Events.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Hi Peter,
zu Punkt 1: Stimmt, den Zugriffs-Modifier habe ich übersehen. Der Designer meldet zwar immer noch "Cannot resolve symbol ...", aber es funktioniert trotzdem.
zu Punkt 2: Ich meinte damit nicht irgendwelche Controls, sondern ein beliebiges Objekt. In JSP gibts das Tag <jsp:useBean> wo man ein Objekt definieren kann, ohne Inline-Code.
Grüße,
wiesi 😉
Hallo wiesi
Gibts AFAIK nicht.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011