Действительно ли возможно сделать пользовательскую группировку в управлении ASP.NET ListView?

Вы можете использовать отрицательные смещения в head (или tail), поэтому head(x, -1) удаляет последний последний элемент :

R> head( 1:4, -1)
[1] 1 2 3
R> 

Это также сохраняет дополнительный вызов length().

Редактировать: Как отметил Джейсон, этот подход на самом деле не быстрее. Не могу поспорить с эмпирикой. На моей машине:

R> x <- rnorm(1000)
R> microbenchmark( y <- head(x, -1), y <- x[-length(x)], times=10000)
Unit: microseconds
                expr    min      lq median     uq     max
1   y <- head(x, -1) 29.412 31.0385 31.713 32.578 872.168
2 y <- x[-length(x)] 14.703 15.1150 15.565 15.955 706.880
R> 
6
задан Jason 1 June 2009 в 21:19
поделиться

3 ответа

Когда мне нужно было добавить основные групповые заголовки в репитер, я сделал это с помощью элемента управления Literal в ItemTemplate:

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

Метод GetGroupHeading в коде отслеживал предыдущий заголовок группы и отправили обратно '

Group Name

' или пустую строку, если мы были в той же группе, что и предыдущий элемент. Как я уже сказал, я сделал это на Repeater, поэтому не уверен, что он покрывает то, что вам нужно для ListView.

4
ответ дан 17 December 2019 в 07:08
поделиться

Да Ник дал отличное преимущество. Вот мой код программной части

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
ответ дан 17 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: