Asp: controlling DataList with asp: LinkButton inside - something weird

First of all, I am asp.net n00b, so naked with me. :)

I am working on examples in a book, trying to learn ASP.NET, and I came across something strange there. First of all, if I type it as written in the book, VS gives me errors. This is the code written in the book:

    <asp:DataList ID="employeesList" runat="server">
    <ItemTemplate>
        <asp:Literal ID="extraDetailsLiteral" runat="server" EnableViewState="false" />
        Name: <strong><%#Eval("Name") %></strong><br />
        Username: <strong><%#Eval("Username") %></strong><br />
        <asp:LinkButton ID="detailsButton" runat="server" Text=<%#"View more details about " + Eval("Name")%> 
            CommandName="MoreDetailsPlease" 
            CommandArgument=<%#Eval("EmployeeID")%> />
    </ItemTemplate>
    <SeparatorTemplate>
        <hr />
    </SeparatorTemplate>
</asp:DataList>

So, I pounced on him for a while and came up with this solution, which actually compiles:

    <asp:DataList ID="employeesList" runat="server" onitemcommand="employeesList_ItemCommand">
    <ItemTemplate>
        <asp:Literal ID="extraDetailsLiteral" runat="server" EnableViewState="false" />
        Name: <strong><%#Eval("Name") %></strong><br />
        Username: <strong><%#Eval("Username") %></strong><br />
        <asp:LinkButton ID="detailsButton" runat="server" Text='View more details about <%# Eval("Name") %>' 
            CommandName="MoreDetailsPlease" CommandArgument='<%Eval("EmployeeID") %>' />
    </ItemTemplate>
    <SeparatorTemplate>
        <hr />
    </SeparatorTemplate>
</asp:DataList>

Please note that I also added OnItemCommand in the asp: DataList tag, so now I can fire the event as expected.

, ; , , , Literal, ( EmployeeID) Name LinkButton, :

http://lh6.ggpht.com/_x84bQLYH57A/SgxzygartcI/AAAAAAAAAIY/nhT-6RUJa6o/s144/EmployeeDirectory_notshowing.jpg

"EmployeeID: 1" " Zak Ruvalcaba"

, , Eval, , , - ?

!

+3
2

LinkButton :

<asp:LinkButton ID="detailsButton" runat="server" 
     Text='<%# Eval("Name", "View more details about {0}") %>' 
     CommandName="MoreDetailsPlease" 
     CommandArgument='<%# Eval("EmployeeID") %>' />

, . . .

+3

, , - :

Eval DataList

, Canavar .

+1

Source: https://habr.com/ru/post/1708368/


All Articles