您只能在ListView中定义GroupItemCount,但如果要根据数据源中项目的属性进行分组,该怎么办?按特定组排序。数据源在此属性上排序。
我看过一些例子,其中ItemTemplate中的某些标记是有条件显示的,但我想尽可能利用GroupTemplate。
这可能吗?
答案 0 :(得分:4)
当我必须在转发器中添加基本组标题时,我使用ItemTemplate中的Literal控件:
<asp:Literal runat="server" Text='<%# GetGroupHeading(Eval("Group")) %>' />
代码中的“GetGroupHeading”方法跟踪前一个组标题并发回“&lt; h2&gt; Group Name&lt; / h2&gt;”,如果我们与前一个项目位于同一组,则返回一个空字符串。正如我所说,我在Repeater上做了这个,所以不确定它是否会涵盖ListView所需的内容。
答案 1 :(得分:2)
是的尼克带来了很大的领先优势。这是我的代码隐藏
Dim sCategory_Descr As String
Function GetGroupHeading(ByVal sGroupName As String) As String
Dim sReturn As String
If sCategory_Descr <> sGroupName Then
sCategory_Descr = sGroupName
sReturn = "<H5>Category: " & UCase(sGroupName) & "</H5>"
Else
sReturn = ""
End If
Return sReturn
End Function
我的item_template
<ItemTemplate>
<tr>
<td style="background-color:#ccc;" colspan="2" id="tdCategory_Placeholder" runat="server" >
<asp:Label Font-Bold="true" ID="Literal1" runat="server" Text='<%# GetGroupHeading(Eval("Category_Descr")) %>' />
</td>
</tr>
<tr>
<td >
<asp:DynamicControl1 />
</td>
<td >
<asp:DynamicControl2 />
</td>
</tr>
</ItemTemplate>
答案 2 :(得分:-2)