Frage

habe ich einen RadGrid mit einem paar Feldern zum Filtern und ich kann nicht scheinen, um die Filterung zur Arbeit zu kommen. Ich sehe es zurück (die Ajax-spinny Kreis Sache) nach der Eingabe etwas in der Filterbox deutlich veröffentlichen, aber meine Ergebnisse sind immer die gleiche. Ich verwende die folgende Definition in der aspx-Datei:

<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>

Und ich habe folgend in meinem Code hinter:

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

    Customers.GetBySQLStatement(GetCustomerSQL());

    this.RadGrid1.DataSource = Customers;
}

Irgendwelche Ideen?

War es hilfreich?

Lösung

In Datafield für jede Spalte oder Verwendung GridBoundColumns , statt GridTemplateColumns.

Andere Tipps

Ihre Gitter Definition sieht nicht gut aus für mich - nicht sicher, wo das Problem ist. Ich benutze das Telerik Grid aus einiger Zeit und was ich tun würde, wenn in den Schuhen wäre meinen Code zu debuggen, sieht, was der MasterTableView.FilterExpression Wert innerhalb NeedDataSource ist und ob die zurückgegebenen Datensätze mit diesem Ausdruck gefiltert und an das Netz weitergegeben .

Dick

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top