2009-06-01 18 views
5

ListViewでのみGroupItemCountを定義できますが、データソース内の項目のプロパティに基づいてグループ化する場合はどうなりますか?でのアドホックグループのソートデータソースはこのプロパティでソートされます。ASP.NET ListViewコントロールでカスタムグループ化を行うことはできますか?

ItemTemplateのマークアップの一部が条件付きで表示されていた例がいくつか見受けられましたが、可能であればGroupTemplateを活用したいと考えています。

これは可能ですか?コード内

<asp:Literal runat="server" Text='<%# GetGroupHeading(Eval("Group")) %>' /> 

「GetGroupHeading」メソッドは、前のグループの見出しのトラックを維持し、送られた:私はItemTemplateに中Literalコントロールでそうしたリピータに基本的なグループ見出しを追加する必要がありました

+0

だ、私は正しい方向へのポインタのみで、コードを探していませんよ。 –

答えて

3

back '<h2>グループ名</h2 >'、または前の項目と同じグループにあった場合は空の文字列です。私が言ったように、私はRepeaterでこれをやったので、あなたがListViewに必要なものをカバーするかどうかは分かりません。

+0

ListViewでも同様のことができますが、ヘッダーを追加することはListViewコントロールのGroupTemplateでグループ化することとは異なります。 GroupTemplateを使用すると、アイテムをテンプレートのマークアップで囲むことができます。グループ分けできるものを除いて、私が知る限り数えられます。 –

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> 
関連する問題