Filtro su RadGrid non funziona

Ho creato un RadGrid con un paio di campi per il filtraggio e io non riesco a ottenere il filtraggio di lavoro. Posso vedere chiaramente il post (ajax spinny cerchio cosa) dopo aver digitato qualcosa nella scatola filtro, comunque i miei risultati sono sempre gli stessi. Sto utilizzando la seguente definizione nel file aspx:

<telerik:RadGrid PageSize="4" ID="RadGrid1" runat="server" AllowPaging="True" AllowSorting="True"
                    AutoGenerateColumns="False" OnNeedDataSource="RadGrid1_NeedDataSource"
                    OnSelectedIndexChanged="RadGrid1_SelectedIndexChanged" Skin="Black" ShowFooter="True"
                    ShowStatusBar="True" AllowFilteringByColumn="True"
                    EnableLinqExpressions="False">
                    <MasterTableView AllowFilteringByColumn="true" Caption="Select a Customer">
                        <Columns>
                            <telerik:GridTemplateColumn CurrentFilterFunction="StartsWith" HeaderText="First Name" AllowFiltering="true" AutoPostBackOnFilter="true">
                                <ItemTemplate>
                                    <%#GetFirstName(DataBinder.Eval(Container, "DataItem"))%>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="Last Name" AllowFiltering="true" AutoPostBackOnFilter="true">
                                <ItemTemplate>
                                    <%#GetLastName(DataBinder.Eval(Container, "DataItem"))%>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="Address">
                                <ItemTemplate>
                                    <%#GetAddress(DataBinder.Eval(Container, "DataItem"))%>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="Shop">
                                <ItemTemplate>
                                    <%#GetShopName(DataBinder.Eval(Container, "DataItem"))%>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                        </Columns>
                        <RowIndicatorColumn>
                            <HeaderStyle Width="20px"></HeaderStyle>
                        </RowIndicatorColumn>
                        <ExpandCollapseColumn>
                            <HeaderStyle Width="20px"></HeaderStyle>
                        </ExpandCollapseColumn>
                    </MasterTableView>
                    <ClientSettings EnableRowHoverStyle="true" EnablePostBackOnRowClick="True">
                        <Selecting AllowRowSelect="true" />
                    </ClientSettings>
                    <PagerStyle Mode="NumericPages" />
                </telerik:RadGrid>

E ho ottenuto i seguenti nel mio codice dietro:

protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    BusinessLayer.Customers Customers = new BusinessLayer.Customers();

    Customers.GetBySQLStatement(GetCustomerSQL());

    this.RadGrid1.DataSource = Customers;
}

Tutte le idee?

  • Qualsiasi altro risultato di questo? Io vedo un problema simile, ma hanno tutti GridBoundColumns con DataField definito. Iny mio NeedDataSource gestore di eventi, il CurrentFilterFunction e CurrentFilterValues sono impostati correttamente per la colonna(s) filtrato.
InformationsquelleAutor Icemanind | 2010-01-15



3 Replies
  1. 6

    Aggiungere DataField per ogni colonna o utilizzare GridBoundColumns piuttosto che GridTemplateColumns.

    • dopo aver cercato in diversi posti, DataField suggerimento ha funzionato per me.
  2. 5

    Griglia definizione sembra OK per me – non è sicuro di dove è il problema. Io uso il Telerik griglia da qualche tempo e che cosa avrei fatto se nei vostri panni e sarebbe per eseguire il debug di codice, vedere ciò che il MasterTableView.FilterExpression valore è all’interno NeedDataSource e se i record restituiti vengono filtrati con quell’espressione e passato alla griglia.

    Cazzo

    • ancora una risposta, due anni più tardi. Grazie
    • Grazie! ha votato questa risposta in alto.. non potrebbe essere la risposta diretta alla domanda, ma certamente utile per il debug radgrid problemi di filtro e mi ha aiutato.
    • OnNeedDataSource non si innesca quando faccio un filtro. Solo quando il primo caricamento della pagina.
  3. 0
    Public Sub RadGrid_NeedDataSource(ByVal source As RadGrid, ByVal e As GridNeedDataSourceEventArgs) 'Handles RadGrid.NeedDataSource
        Dim RadGrid As RadGrid = CType(source, RadGrid)
        'Dim nestedItem As GridNestedViewItem = CType(source.NamingContainer, GridNestedViewItem)
        'Dim CustomerID = CType(nestedItem.ParentItem, GridDataItem).GetDataKeyValue(source.Attributes("TableID"))
    
        Dim gridSortString As String = RadGrid.MasterTableView.SortExpressions.GetSortString()
    
        Dim args As New DataSourceSelectArguments(gridSortString)
    
        If gridSortString Is Nothing Then
            RadGrid.DataSource = GetDataTable("SELECT * FROM [" + source.Attributes("TableName") + "] ") 'Where CustomerID = N'" + CustomerID + "'
        Else
            RadGrid.DataSource = GetDataTable("SELECT * FROM [" + source.Attributes("TableName") + "] ORDER BY " & gridSortString) 'Where CustomerID = N'" + CustomerID + "'
        End If
    
    End Sub
    • Si prega di modificare la tua risposta e descrivere il codice. Codice uniche risposte che non sono l’opzione migliore.

Lascia un commento