RadGridのフィルタリングは機能していません
質問
私は、フィルタリングのためのフィールドのカップルとRadGridを作成し、私はフィルタリングが仕事を得るように見えることはできません。私はそれは、明らかに私の結果は常に同じで、フィルタボックスに何かを入力した後に(Ajaxのspinnyサークルの事)ポストバック見ることができます。私は、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;
}
任意のアイデア?
解決
GridBoundColumns のではなくGridTemplateColumnsより
列ごとののDataField の追加の使用
他のヒント
あなたのグリッドの定義は私にOKになります - 問題がどこにあるかわかりません。私は今、いくつかの時間からTelerikグリッドを使用して、あなたの靴に自分のコードをデバッグするだろう場合、私は何をするだろう、MasterTableView.FilterExpression値がNeedDataSourceの内側と返されたレコードは、その式で濾過し、グリッドに渡されるかどうかであるかを見ますます。
ディック
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
所属していません StackOverflow