0

我在这里读到td 标签必须嵌套,所以当我看到 ListView 的 ItemTemplate 属性标签看起来像这样时,我很困惑:

<ItemTemplate>    
                            <td id="Td2" runat="server">      
                                <table>        
                                    <tr>          
                                        <td>&nbsp;</td>          
                                        <td>
                                            <a href="ProductDetails.aspx?productID=<%#:Item.ProductID%>">
                                                <img src="/Catalog/Images/Thumbs/<%#:Item.ImagePath%>" 
                                                    width="100" height="75" /></a> 
                                        </td>
                                        <td>
                                            <a href="ProductDetails.aspx?productID=<%#:Item.ProductID%>">
                                                <span class="ProductName">
                                                    <%#:Item.ProductName%>
                                                </span>
                                            </a>            
                                            <br />
                                            <span class="ProductPrice">           
                                                <b>Price: </b><%#:String.Format("{0:c}", Item.UnitPrice)%>
                                            </span>
                                            <br />            
                                        </td>        
                                    </tr>      
                                </table>    
                            </td>  
                        </ItemTemplate>  

这是否与 ListView 从某个类继承并实现大量接口的事实有关?还是与我不熟悉的 ItemTemplate 的某些方面有关?我的来源是错误的还是“只是一个 ASP 的东西”?

4

2 回答 2

1

我不知道您的 LayoutTemplate 是什么样的,但这实际上与 ListView 本身无关,而更多地与开发人员选择的 HTML 布局有关。td 最好属于 tr,但这些只是标签。您可以更改 css 并根据需要重新定义。然后浏览器会解释它并显示它,然后你就可以处理你选择的后果 =)。

上面的代码有意义的一种可能方式是:

<LayoutTemplate>
    <table border="0" cellpadding="1">
        <tr>
            <th>Product</th>
        </tr>
        <tr>
            <td id="itemPlaceholder" runat="server"></td>
        </tr>
    </table>
</LayoutTemplate>

这将创建一个带有产品标题的单列外部表,然后该表的每一行将包含您上面的内部表(每个产品)。

于 2013-07-16T13:50:53.307 回答
1

这只是 asp.net 让您定义控件的方式。一旦呈现了 asp.net 页面(转换为纯 html),这些td元素应该嵌套在tr. 您可以通过在浏览器中查看页面源来查看输出。

于 2013-07-16T13:40:02.333 回答