문제

필터링을 위해 몇 개의 필드가있는 radgrid를 만들었고 필터링이 작동하지 않는 것 같습니다. 필터 상자에 무언가를 입력 한 후 다시 게시하는 것을 볼 수 있지만 결과는 항상 동일합니다. 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 gridtemplatecolumn 대신.

다른 팁

당신의 그리드 정의는 나에게 괜찮아 보인다 - 문제가 어디에 있는지 확실하지 않다. 나는 지금부터 Telerik 그리드를 사용하고 당신의 신발에서 내 코드를 디버깅하고 mas .

형사

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top