2014-04-08 7 views
2

나는 데이터 소스로 웹 API라드 그리드 호출기

<telerik:RadGrid runat="server" ID="grdUsers" AllowPaging="true" AllowSorting="true" 
     AllowFilteringByColumn="true" PageSize="5"> 
     <MasterTableView AutoGenerateColumns="False" DataKeyNames="Id" ClientDataKeyNames="Id,PasswordHash"> 
      <PagerStyle Mode="NumericPages" AlwaysVisible="true" /> 
      <Columns> 
       <telerik:GridImageColumn DataType="System.String" DataImageUrlFields="Image" AlternateText="User image" 
        UniqueName="Image" 
        ImageAlign="Middle" ImageHeight="50px" ImageWidth="50px" AllowFiltering="false" HeaderText=""> 
       </telerik:GridImageColumn> 
       <telerik:GridBoundColumn DataField="UserName" HeaderText="User Name" UniqueName="UserName" 
        DataType="System.String"> 
       </telerik:GridBoundColumn> 
       <telerik:GridBoundColumn DataField="FullName" HeaderText="Name" UniqueName="FullName" 
        DataType="System.String"> 
       </telerik:GridBoundColumn> 
       <telerik:GridBoundColumn DataField="Email" HeaderText="Email" UniqueName="Email" 
        DataType="System.String"> 
       </telerik:GridBoundColumn> 
       <telerik:GridBoundColumn DataField="RegistrationDate" HeaderText="Registration Date" UniqueName="RegistrationDate" 
        DataFormatString="{0:dd/MM/yyyy}"> 
       </telerik:GridBoundColumn> 
       <telerik:GridButtonColumn UniqueName="btnEdit" ButtonType="PushButton" Text="Edit" CommandName="Edit"></telerik:GridButtonColumn> 
       <telerik:GridButtonColumn UniqueName="btnDelete" ButtonCssClass="del" ButtonType="PushButton" Text="Delete" CommandName="Delete"></telerik:GridButtonColumn> 
      </Columns> 
     </MasterTableView> 
     <ClientSettings> 
      <Selecting AllowRowSelect="True" /> 
      <ClientEvents OnCommand="RadGridCommand" /> 
      <DataBinding Location="/SecuHostapi/Security/User/GetAll" ResponseType="JSON"> 
       <DataService TableName="SecuHostUser" Type="OData" /> 
      </DataBinding> 
     </ClientSettings> 
    </telerik:RadGrid> 

WEP API 코드

[HttpGet] 
    public List<SecuHostUser> GetAll(ODataQueryOptions<SecuHostUser> options) 
    { 
     UsersRep userRep = new UsersRep(); 
     return userRep.GetAll(); 
    } 

내가 페이지 크기 = "5", 최종 넣어 가지고, 비록로 라드 그리드를 사용해보십시오 결과는 데이터베이스의 모든 데이터를 표시합니다.

답변

1

이 문제는 목록 대신 PageResult를 반환하면 해결할 수 있습니다.

[HttpGet] 
public PageResult GetAll(ODataQueryOptions<SecuHostUser> options) 
{ 
    UsersRep userRep = new UsersRep(); 
    //return userRep.GetAll(); 

    var users = userRep.GetAll().AsQueryable(); 
    var results = options.ApplyTo(users); 
    return new PageResult<SecuHostUser>(results as IEnumerable<SecuHostUser>, 
     Request.GetNextPageLink(), Request.GetInlineCount()); 
}