Фильтрация в RadGrid не работает

Я создал RadGrid с несколькими полями для фильтрации, и я не могу заставить фильтрацию работать. Я ясно вижу, как он отправляет ответ (вещь с вращающимся кругом ajax) после ввода чего-то в поле фильтра, однако мои результаты всегда одинаковы. Я использую следующее определение в файле 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>

И я получил следующее в своем коде:

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

    Customers.GetBySQLStatement(GetCustomerSQL());

    this.RadGrid1.DataSource = Customers;
}

Любые идеи?


person Icemanind    schedule 15.01.2010    source источник
comment
Есть ли другие результаты этого? Я вижу аналогичную проблему, но у меня есть все GridBoundColumns с определенным DataField. В моем обработчике событий NeedDataSource функции CurrentFilterFunction и CurrentFilterValues ​​установлены правильно для отфильтрованных столбцов.   -  person brentlightsey    schedule 21.05.2010


Ответы (3)


Добавьте DataField для каждого столбца или используйте GridBoundColumns вместо GridTemplateColumns.

person alan    schedule 21.01.2010
comment
после поиска нескольких сообщений предложение DataField сработало для меня. - person s.bramblet; 06.04.2018

Ваше определение сетки выглядит нормально для меня - не знаю, в чем проблема. Я использую сетку Telerik с некоторого времени, и что бы я сделал, если бы на вашем месте отладил мой код, посмотрел, какое значение MasterTableView.FilterExpression находится внутри NeedDataSource и фильтруются ли возвращаемые записи с этим выражением и передаются ли в сетку .

Дик

person Dick Lampard    schedule 15.01.2010
comment
по-прежнему актуальный ответ два года спустя. Спасибо - person hardba11; 20.06.2012
comment
Спасибо! проголосовал за этот ответ ... может быть, это не прямой ответ на вопрос, но, безусловно, полезен для отладки проблем с фильтрацией radgrid и помог мне. - person Jack0fshad0ws; 07.08.2013
comment
OnNeedDataSource не срабатывает, когда я делаю фильтр. Только при первой загрузке страницы. - person Mike W; 10.10.2019

person    schedule
comment
Пожалуйста, отредактируйте свой ответ и опишите свой код. Ответы только на код — не лучший вариант. - person KittMedia; 21.02.2016