Jan 15, 2014, 11:15 AM
[CLOSED] remote filter dose not be triggered?
how to trigger filter event when typing some characters in filter header input text box?
<ext:Viewport runat="server" Layout="FitLayout">
<Items>
<ext:GridPanel runat="server" Title="文章管理">
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button runat="server" Text="新增" Icon="ApplicationFormAdd">
<DirectEvents>
<Click OnEvent="ShowAddWindow"></Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<Store>
<ext:Store runat="server" ID="store1" OnReadData="LoadArticles" RemoteFilter="True" PageSize="50">
<Model>
<ext:Model runat="server">
<Fields>
<ext:ModelField Name="id"></ext:ModelField>
<ext:ModelField Name="title"></ext:ModelField>
<ext:ModelField Name="uid"></ext:ModelField>
<ext:ModelField Name="QizUser" Type="Object"></ext:ModelField>
<ext:ModelField Name="colid"></ext:ModelField>
<ext:ModelField Name="QizColumn" Type="Object"></ext:ModelField>
<ext:ModelField Name="addtime" Type="Date"></ext:ModelField>
<ext:ModelField Name="cont"></ext:ModelField>
</Fields>
</ext:Model>
</Model>
<Proxy>
<ext:PageProxy></ext:PageProxy>
</Proxy>
</ext:Store>
</Store>
<ColumnModel>
<Columns>
<ext:Column runat="server" DataIndex="id" Text="编号11">
</ext:Column>
<ext:Column runat="server" DataIndex="title" Text="标题" Flex="1">
<Renderer Fn="renderArt"></Renderer>
</ext:Column>
<ext:Column runat="server" DataIndex="colid" Text="栏目">
<Renderer Fn="renderColumn"></Renderer>
</ext:Column>
<ext:Column runat="server" DataIndex="uid" Text="作者">
<Renderer Fn="renderUser"></Renderer>
</ext:Column>
<ext:DateColumn runat="server" DataIndex="addtime" Text="发表时间" Format="yyyy-MM-dd"></ext:DateColumn>
<ext:CommandColumn runat="server" Text="操作">
<Commands>
<ext:GridCommand Icon="NoteEdit" CommandName="Edit">
<ToolTip Text="修改"></ToolTip>
</ext:GridCommand>
<ext:GridCommand Icon="Delete" CommandName="Delete">
<ToolTip Text="删除"></ToolTip>
</ext:GridCommand>
</Commands>
<Listeners>
<Command Fn="operArt" />
</Listeners>
</ext:CommandColumn>
</Columns>
</ColumnModel>
<Plugins>
<ext:RowExpander runat="server">
<Template ID="Template1" runat="server">
<Html>
<div style="background: #fff;">{cont}</div>
</Html>
</Template>
</ext:RowExpander>
</Plugins>
<BottomBar>
<ext:PagingToolbar runat="server" StoreID="store1"></ext:PagingToolbar>
</BottomBar>
<Plugins>
<ext:FilterHeader ID="FilterHeader1" runat="server" Remote="true" />
</Plugins>
<SelectionModel>
<ext:RowSelectionModel runat="server" Mode="Multi" ID="CellSelectionModel1"></ext:RowSelectionModel>
</SelectionModel>
</ext:GridPanel>
</Items>
</ext:Viewport>
protected void LoadArticles(object sender, StoreReadDataEventArgs e)
{
FilterHeaderConditions fhc = new FilterHeaderConditions(e.Parameters["filterheader"]);
foreach (FilterHeaderCondition condition in fhc.Conditions)
{
string dataIndex = condition.DataIndex;
FilterType type = condition.Type;
string op = condition.Operator;
object value = null;
switch (condition.Type)
{
case FilterType.Boolean:
value = condition.Value<bool>();
break;
case FilterType.Date:
switch (condition.Operator)
{
case "=":
value = condition.Value<DateTime>();
break;
case "compare":
value = FilterHeaderComparator<DateTime>.Parse(condition.JsonValue);
break;
}
break;
case FilterType.Numeric:
switch (condition.Operator)
{
case "=":
value = condition.Value<int>();
break;
case "compare":
value = FilterHeaderComparator<int>.Parse(condition.JsonValue);
break;
}
break;
case FilterType.String:
value = condition.Value<string>();
break;
default:
throw new ArgumentOutOfRangeException();
}
}
int start = e.Start;
int limt = e.Limit;
var total = 0;
var ll = artService.PageArts(start, limt, out total);
// var ll = artService.PageArts1(start, limt, out total);
e.Total = total;
store1.DataSource = ll;
store1.DataBind();
}
the LoadArticles execute when page is load , but when i type some characters on the filter's input text, the function dose not execute,what i miss sth.?
Last edited by Daniil; Jan 18, 2014 at 3:49 AM.
Reason: [CLOSED]