http://examples.ext.net/#/GridPanel/Paging_and_Sorting/XML_WebService/ 我只是将这个例子添加到一个ext:GridFilters .thats all。我用ext:GridFilters测试了这个例子,但是没有给我过滤数据。
这是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 :(得分:1)
具有Local =“false”的GridFilters会自动发送过滤器的值。您无需插入StoreParameter。
默认情况下,参数名称为“filter”。但是,以下签名
[WebMethod]
public Paging<SomeEntity> GetData(int start, int limit, string sort, string filter)
可能会导致初始加载请求出现问题,因为只有在应用任何过滤器时,GridFilters发送才会添加过滤器参数。因此,如果没有filter参数,WebService将抛出错误。
因此,我建议您使用StoreRequestParameters类。
[WebMethod]
public Paging<SomeEntity> GetData()
{
StoreRequestParameters parameters = new StoreRequestParameters(this.Context);
return new Paging<SomeEntity>(...);
}