项目模板和布局模板之间的区别

时间:2011-02-10 09:49:50

标签: asp.net data-binding

项目模板和布局模板之间有什么区别。在布局模板中,我们只有关于设计的信息?或其他任何事情。我无法理解项目模板..请解释..!

除了这个,我还有像这样的项目查询

SELECT TOP (1) ProductName, UnitPrice FROM Products ORDER BY NEWID()

这里NEWID()意味着什么?它是与sqlserver相关的预定义函数吗?我的项目中没有任何newid()函数被下载。如果它是预定义函数那么它可以做什么?

谢谢

2 个答案:

答案 0 :(得分:8)

通过定义LayoutTemplate创建ListView控件的主要布局。 LayoutTemplate将包含用作数据的占位符的控件,如Table,Panel,Label或HTML控件,例如runat属性设置为“server”的table,div或span元素。 项目模板是主模板,它将以重复的方式显示绑定到ListView的数据。此模板通常包含数据绑定到数据列或其他单个数据元素的控件。这两个模板是强制性的。

GroupTemplate将用于对项目进行分组。 EditItemtemplate,SelectedItemTemplate,InsertItemTemplate显示在特定操作中,如insert,edit,select。 ItemSeparatorTemplate,GroupSeparatorTemplate用于分别分隔各个项目和组项目。

Structure of ListView

这会产生差异ItemPlaceholderID="itemPlaceholder"

<asp:ListView runat="server" ID="ListView1" ItemPlaceholderID="itemPlaceholder">
<LayoutTemplate>
     <table border="0" cellpadding="1">
      <tr style="background-color:#E5E5FE">
       <th align="left"><asp:LinkButton ID="lnkId" runat="server">Id</asp:LinkButton></th>
       <th align="left"><asp:LinkButton ID="lnkName" runat="server">Name</asp:LinkButton></th>
       <th align="left"><asp:LinkButton ID="lnkType" runat="server">Type</asp:LinkButton></th>
       <th></th>
      </tr>
      <tr id="itemPlaceholder" runat="server"></tr>
     </table>
    </LayoutTemplate>
    <ItemTemplate>
      <tr>
       <td><asp:Label runat="server" ID="lblId"><%#Eval("ID") %></asp:Label></td>
       <td><asp:Label runat="server" ID="lblName"><%#Eval("FirstName")+" 
        "+Eval("LastName") %></asp:Label></td>
       <td><asp:Label runat="server" ID="lblType"><%#Eval("Type") %></asp:Label></td>
       <td></td>
      </tr>
    </ItemTemplate>
    <AlternatingItemTemplate>
      <tr style="background-color:#EFEFEF">
       <td><asp:Label runat="server" ID="lblId"><%#Eval("ID") %></asp:Label></td>
       <td><asp:Label runat="server" ID="lblName"><%#Eval("FirstName")+" "+
        Eval("LastName") %></asp:Label></td>
       <td><asp:Label runat="server" ID="lblType"><%#Eval("Type") %></asp:Label></td>
       <td></td>
      </tr>
    </AlternatingItemTemplate>
</asp:ListView>

参考链接:reference sitecode project reference

答案 1 :(得分:0)

看起来你正在使用ListView控件。

ItemTemplate属性仅适用于绑定到控件的数据项。 LayoutTempate允许您为其他所有内容定义布局。

假设你想用a渲染你的数据。您的LayoutTemplate将包含您的表定义,其中包含ID为“itemPlaceHolder”的单个空行

<tr id="itemPlaceHolder" runat="server" />

然后,您的项目模板将定义您的s应该如何呈现。