我创建了一个RadGrid,其中有几个字段用于过滤,我似乎无法使过滤工作。在过滤器框中输入内容后,我可以清楚地看到它(ajax spinny circle thing),但我的结果总是一样的。我在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;
}
有什么想法吗?
答案 0 :(得分:6)
为每列添加 DataField 或使用 GridBoundColumns 而不是GridTemplateColumns。
答案 1 :(得分:5)
您的网格定义对我来说没问题 - 不确定问题出在哪里。我现在使用Telerik网格,如果你想要调试我的代码,我将会做什么,看看在NeedDataSource中MasterTableView.FilterExpression值是什么,以及返回的记录是否用该表达式过滤并传递给网格
迪克
答案 2 :(得分:0)
2