asp.net 如何将项目列表传递给 eval 函数?

asp.net how to pass list of items to eval function?

这是我的代码,用于在列表视图中的每个项目中以列表视图的形式查看产品我想查看项目列表我该怎么做?我无法理解 eval 函数的概念,我想知道我是否可以在没有数据绑定的情况下将代码后面的列表项传递给它,或者它基本上取决于数据绑定?

  <asp:ListView ID="mylistView" runat="server" GroupItemCount="3">
            <EmptyDataTemplate>
                <table id="Table2" runat="server">
                    <tr>
                        <td>
                            No data was returned.
                        </td>
                    </tr>
                </table>
            </EmptyDataTemplate>
            <EmptyItemTemplate>
                <td id="Td3" runat="server" />
            </EmptyItemTemplate>
            <GroupTemplate>
                <tr id="itemPlaceholderContainer" runat="server">
                    <td id="itemPlaceholder" runat="server">
                    </td>
                </tr>
            </GroupTemplate>
            <ItemTemplate>
                <table border="0" width="300" style="display: inline-block; background-color: Lime;">
                    <tr>
                        <td>
                            &nbsp
                        </td>
                        <td>
                            <a href='ContactUs.aspx'>
                                <image src='productsImg/<%# Eval("Pic_Path") %>' width="100" height="75" border="0">
                            </a>&nbsp
                        </td>
                        <td>
                            <a><b style="text-decoration: underline;">
                                <%# Eval("MenuName") %></b> </a>
                            <br />

                          want to view here list of items 
                       I 
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
            <LayoutTemplate>
                <table id="Table1" runat="server">
                    <tr id="Tr1" runat="server">
                        <td id="Td1" runat="server">
                            <table id="groupPlaceholderContainer" runat="server">
                                <tr id="groupPlaceholder" runat="server">
                                </tr>
                            </table>
                        </td>
                    </tr>
                    <tr id="Tr2" runat="server">
                        <td id="Td2" runat="server">
                        </td>
                    </tr>
                </table>
            </LayoutTemplate>
        </asp:ListView>

这是隐藏代码...

         dataSource.ConnectionString = connetionString;
    dataSource.SelectCommand = "SELECT * FROM tbl_WebMenu where MenuID like'3_';";
    mylistView.DataSource = dataSource;
    mylistView.DataBind();

提前致谢。

Eval 用于绑定到据称是只读的 UI 控件。它可用于设置任何类型的 属性 控件。 完整的语法是"Databinder.Eval",它必须和databind一起使用。 看这个例子。

<asp:TemplateField>
<ItemTemplate>
        <asp:Label ID="lblRead" runat="server" Text='<%# Eval("FieldName") %>'>
        </asp:Label>
</ItemTemplate>
</asp:TemplateField>

您甚至可以使用 eval 设置 属性 控件。它提供了灵活性。

但是 eval 有一个缺点,因为它使用反射来计算表达式。 在这里阅读更多 http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx#remarksToggle