Benutzer mit den meisten Antworten
Repeater und Javascript Funktion aufrufen

Frage
-
Hallo , ich habe folgenden Code in einer ASP.NET Webseite
<asp:Repeater ID="Repeater_Daten" runat="server">
<ItemTemplate><asp:Label ID="Labeltelefon" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.Telefon")%>'
onclick="""MyFunc('<%#DataBinder.Eval(Container.DataItem, "Telefon")%>')""" > </asp:Label>
</ItemTemplate>
</asp:Repeater>
<script type="text/javascript">
function MyFunc(controlValue) {
alert(controlValue);
..diverses..
}
</script>
ich bekomme immer die Fehlermeldung
Parserfehlermeldung: Servertag wurde falsch formatiert.
Beim Label ->onClick
Irgendwie habe ich die Hochkommata falsch gesetzt , habe schon alles mögliche probiert. Sehr ihr den Fehler?
Antworten
-
Hallo Thomas,
in dem Fall dann doch die zweite genannte Variante mit Container.DataItem( "Telefon" ), also bspw. so:
<asp:Label ID="Labeltelefon" runat="server" Text='<%# Container.DataItem( "Telefon" ) %>' onclick='<%# String.Format( "MyFunc( ""{0}"" );", Container.DataItem( "Telefon" ) ) %>' />
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Thomas Klinger2 Dienstag, 28. April 2015 19:22
Alle Antworten
-
Hallo Thomas,
in der Regel sollte man sparsam mit diesen Konstrukten umgehen, da die Übersicht recht schnell verloren geht (wie Du ja grade merkst^^)
Probier es mal hiermit:
<asp:Label ID="Labeltelefon" runat="server" Text='<%# Container.DataItem.Telefon %>' onclick='<%# String.Format( "MyFunc( ""{0}"" );", Container.DataItem.Telefon ) %>' />
Für VB.NET kannst Du für die Angabe der Bindings eine kürzere Schreibweise verwenden. Bspw. Container.DataItem.Eigenschaft für Objekte, deren Eigenschaft Du abgreifen willst bzw. Container.DataItem( "Spalte" ) für DataRows, ...
Das DataBinder.Eval kannst Du dir hierbei sparen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hi Stefan, das war ja Fix. Bekomme aber wenn ich deinen obigen Code nehme folgenden Fehler
System.MissingMemberException wurde nicht von Benutzercode behandelt.
HResult=-2146233070
Message=Der öffentliche Member Telefon für den Typ DataRowView wurde nicht gefunden.
Source=Microsoft.VisualBasic -
Hallo Thomas,
in dem Fall dann doch die zweite genannte Variante mit Container.DataItem( "Telefon" ), also bspw. so:
<asp:Label ID="Labeltelefon" runat="server" Text='<%# Container.DataItem( "Telefon" ) %>' onclick='<%# String.Format( "MyFunc( ""{0}"" );", Container.DataItem( "Telefon" ) ) %>' />
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Thomas Klinger2 Dienstag, 28. April 2015 19:22