2013-07-29 1 views
0

http://examples.ext.net/#/GridPanel/Paging_and_Sorting/XML_WebService/ 이 예제를 ext : GridFilters .thats all로 추가합니다.이 예제를 ext : GridFilters로 테스트했지만 필터링 된 데이터를 제공하지 않았습니다.ext.net : 페이지 매김을 사용한 원격 필터링

여기는 aspx 코드입니다.

나는 웹 서비스에이 메서드를 호출하고
<html> 
    <body> 
     <form id="form1" runat="server"> 

      <ext:ResourceManager ID="ResourceManager1" runat="server" /> 

      <ext:GridPanel 
       runat="server" 
       ID="GridPanel1" 
       Title="Employees" 
       Frame="true" 
       Height="300"> 
       <Store> 
        <ext:Store 
         ID="Store1" 
         runat="server" 
         RemoteSort="true" 
         RemoteFilter="true" 
         AutoSync="false" RemotePaging="true" 
         PageSize="5"> 
         <Proxy> 
          <ext:AjaxProxy Url="WebService1.asmx/PlantsPaging"> 
           <ActionMethods Read="GET" /> 
           <Reader> 
            <ext:XmlReader Record="Plant" TotalProperty="TotalRecords" /> 
           </Reader> 
          </ext:AjaxProxy> 
         </Proxy> 
         <Parameters> 
          <ext:StoreParameter Name="filter" Value="" Mode="Value" /> 
         </Parameters> 
         <Model> 
          <ext:Model ID="Model1" runat="server"> 
           <Fields> 
            <ext:ModelField Name="Common" /> 
            <ext:ModelField Name="Botanical" /> 
            <ext:ModelField Name="Light" /> 
            <ext:ModelField Name="Price" Type="Float" /> 
            <ext:ModelField Name="Availability" Type="Date" /> 
            <ext:ModelField Name="Indoor" Type="Boolean" /> 
           </Fields> 
          </ext:Model> 
         </Model> 
         <Sorters> 
          <ext:DataSorter Property="Common" Direction="ASC" /> 
         </Sorters> 
        </ext:Store> 
       </Store> 
         <Features> 
           <ext:GridFilters ID="GridFilters1" runat="server" Local="false" > 
            <Filters> 
             <ext:StringFilter DataIndex="Common" /> 
             <ext:StringFilter DataIndex="Botanical" /> 


            </Filters> 
           </ext:GridFilters> 
          </Features> 
       <ColumnModel ID="ColumnModel1" runat="server"> 
        <Columns> 
         <ext:Column ID="Column1" runat="server" Text="Common Name" DataIndex="Common" Sortable="true" Flex="1" /> 
         <ext:Column ID="Column2" runat="server" Text="Botanical" DataIndex="Botanical" Width="230" /> 
         <ext:Column ID="Column3" runat="server" Text="Light" DataIndex="Light" Width="130" /> 
         <ext:Column ID="Column4" runat="server" Text="Price" DataIndex="Price" Width="70" Align="right" /> 
         <ext:DateColumn ID="DateColumn1" runat="server" Text="Available" DataIndex="Availability" Width="95" Format="yyyy-MM-dd" /> 
         <ext:Column ID="Column5" runat="server" Text="Indoor?" DataIndex="Indoor" Width="55" /> 
        </Columns> 
       </ColumnModel> 
       <View> 
        <ext:GridView ID="GridView1" runat="server" LoadingText="Loading XML..." /> 
       </View>   
       <BottomBar> 
        <ext:PagingToolbar ID="PagingToolbar1" 
         runat="server"      
         DisplayInfo="true" 
         DisplayMsg="Displaying plants {0} - {1} of {2}" 
         EmptyMsg="No plants to display" 
         /> 
       </BottomBar> 
      </ext:GridPanel> 
     </form> 

    </body> 
    </html> 

,

public Paging<Plant> PlantsPaging(int start, int limit, string sort, string filter) 
     { 

} 

하지만 필터는 빈 얻을.

+0

정확히 무엇이 문제입니까? 필터가 작동하지 않거나 예외가 발생하거나 어떤 일이 발생합니까? – MMMagic

+0

문제는 다음과 같습니다. 는 빈 값을 얻습니다. – sakir

+0

나는 store 매개 변수와 gridview 필터 사이의 연결이 필요하다고 생각하지만 확실하지 않다. – sakir

답변

1

Local = "false"인 GridFilters는 필터 값을 자동으로 보냅니다. StoreParameter에 넣을 필요가 없습니다.

매개 변수 이름은 기본적으로 "필터"입니다. 모든 필터가 적용되는 경우에만 필터 매개 변수를 추가하는 GridFilters이 송신하기 때문에, 다음 서명

[WebMethod] 
public Paging<SomeEntity> GetData(int start, int limit, string sort, string filter) 

은 초기로드 요청에 대한 문제가 발생할 수있다. 따라서 필터 매개 변수가 없으면 WebService에서 오류가 발생합니다.

그래서 StoreRequestParameters 클래스를 사용하는 것이 좋습니다.

[WebMethod] 
public Paging<SomeEntity> GetData() 
{ 
    StoreRequestParameters parameters = new StoreRequestParameters(this.Context); 
    return new Paging<SomeEntity>(...); 
} 
+0

어떻게 서버 측에서 잡을 수 있습니까? public Paging PlantsPaging (int start, int limit, 문자열 정렬, 문자열 필터). "filter"변수 안에 있습니까? – sakir

+0

예, 있어야합니다. –

+0

다시 한번 감사드립니다. – sakir

관련 문제