Witam
Zaczynam prace z ASP.NET i na starcie mam problem.
Używam kontrolki asp:Repeater w której chciałbym stworzyć pewną ilość powiedzmy Labeli. źródłem danych dla repeateraz jest zapytanie sql które zwraca 3 wartości tekstowe: x, y, z. chciałbym teraz stworzyć tyle labeli ile jest zwracanych wartości z tekstem tej wartości.
Problem wygląda nastepująco:
Pod właściwość TEXT etykiety podstawiam <%# Eval("SYMBOL") %>.
Cały kod wygląda następująco:
<asp:SqlDataSource ID="sqlSymbol" runat="server"
ConnectionString="<%$ ConnectionStrings:WebOEEConnectionString %>"
SelectCommand="SELECT DISTINCT [SYMBOL] FROM [TABELA] WHERE ([SYMBOL] IS NOT NULL)">
</asp:SqlDataSource>
<asp:Repeater ID="Repeater1" runat="server" DataMember="DefaultView" DataSourceID="sqlSymbol">
<ItemTemplate>
<div>
<asp:Label ID="l1" runat="server" Text="<%# Eval("SYMBOL") %>"></asp:Label>
</div>
</ItemTemplate>
</asp:Repeater>
podczas kompilacji dostaje błąd:
Tag server nie zostałdobrze uformowany.
Podobny błąd występuje gdy chcę stworzyć obiekt saldatasource:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:WebOEEConnectionString %>"
SelectCommand="SELECT [NAZWA] FROM [TABELA] WHERE (([SYMBOL] = @SYMBOL))">
<SelectParameters>
<asp:ControlParameter Name="SYMBOL" DefaultValue='<%# Eval("SYMBOL") %>' Type="String" />
</SelectParameters>
</asp:SqlDataSource>
dokładna treść błędu to:
Wyrażenia wiązania danych są obsługiwane tylko w obiektach, ktre mają zdarzenie DataBinding. System.Web.UI.WebControls.ControlParameter nie ma zdarzenia DataBinding.
Znalazłem w kilku książkach przykłady w których wykorzystuje się taką konstrukcję np:
<asp:Image ID="Icon" runat="server"
ImageUrl='<%# Eval("Icon") %>'
ImageAlign="AbsMiddle" />
I według autorów powinno to działać.
Proszę o pomoc.