我Ext.NET GridPanel
用来在我的系统中显示项目任务列表,每个任务都有其进度状态,如Finished、Running、Not started等。
这是我的网格面板的一部分:
这些进度状态是我数据库中另一个表的记录,就像这样:
它是相关的SprintStatus
->SprintStatusID
我SprintStatusName
在我的gridPanel
.
我想做的是通过 StatusName 对它进行本地过滤,但我能做到这一点的唯一方法是ext:ListFilter
使用它的 ID(1、2、3、4)设置我的选项,这不好,因为我不想要显示 ID
这是过滤器
如何让它显示 StatusName 而不是 StatusID?
我的网格面板代码
<ext:GridPanel
ID="grdProjects"
runat="server"
AutoHeight="true"
EnableColumnMove="false"
Collapsible="false"
AnimCollapse="true"
StripeRows="true"
Title="Projetos" >
<Bin>
<ext:Store ID="storeStatus" runat="server">
<Reader>
<ext:JsonReader IDProperty="StatusID">
<Fields>
<ext:RecordField Name="StatusID" Type="Int" />
<ext:RecordField Name="StatusName" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="storeUsers" runat="server">
<Reader>
<ext:JsonReader IDProperty="DeveloperID">
<Fields>
<ext:RecordField Name="DeveloperID" Type="Int" />
<ext:RecordField Name="DeveloperName" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Bin>
<Store>
<ext:Store ID="ProjectsStore" runat="server" GroupField="ProjectName">
<Reader>
<ext:JsonReader IDProperty="ID">
<Fields>
<ext:RecordField Name="ProjectName" Type="String" />
<ext:RecordField Name="ID" Type="Int" />
<ext:RecordField Name="Name" Type="String" />
<ext:RecordField Name="Status" Type="String" />
<ext:RecordField Name="Owner" Type="String" />
<ext:RecordField Name="Begin" Type="Date" />
<ext:RecordField Name="End" Type="Date" />
<ext:RecordField Name="RealEnd" Type="Date" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<Listeners>
<AfterEdit Fn="afterEdit" />
</Listeners>
<ColumnModel ID="ColumnModel20" runat="server">
<Columns>
<ext:Column ColumnID="SprintProject" Header="Projeto" Align="Left" DataIndex="ProjectName" />
<ext:Column ColumnID="SprintName" Header="Nome" Align="Left" DataIndex="Name" />
<ext:Column ColumnID="SprintStatus" Header="Status" Align="Left" DataIndex="Status">
<Renderer Handler="return #{storeStatus}.getById(value).data.StatusName;" />
<Editor>
<ext:SelectBox
ID="selStatus"
StoreID="storeStatus"
runat="server"
DisplayField="StatusName"
ValueField="StatusID"
EmptyText="Selecione um status" />
</Editor>
</ext:Column>
<ext:Column ColumnID="SprintOwner" Header="Recurso" Align="Left" DataIndex="Owner">
<Renderer Handler="return #{storeUsers}.getById(value).data.DeveloperName;" />
<Editor>
<ext:SelectBox
ID="selDevelopers"
StoreID="storeUsers"
runat="server"
DisplayField="DeveloperName"
ValueField="DeveloperID"
EmptyText="Selecione um recurso" />
</Editor>
</ext:Column>
<ext:DateColumn ColumnID="SprintBegin" Header="Data de início" Align="Center" DataIndex="Begin" Format="dd/MM/yyyy">
<Editor>
<ext:DateField Format="dd/MM/yyyy" runat="server" />
</Editor>
</ext:DateColumn>
<ext:DateColumn ColumnID="SprintEnd" Header="Previsão de término" Align="Center" DataIndex="End" Format="dd/MM/yyyy">
<Editor>
<ext:DateField Format="dd/MM/yyyy" runat="server" />
</Editor>
</ext:DateColumn>
<ext:DateColumn ColumnID="SprintRealEnd" Header="Data de término" Align="Center" DataIndex="RealEnd" Format="dd/MM/yyyy">
<Editor>
<ext:DateField Format="dd/MM/yyyy" runat="server" />
</Editor>
</ext:DateColumn>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
</SelectionModel>
<View>
<ext:GroupingView SplitHandleWidth="10"
runat="server"
ForceFit="true"
MarkDirty="false"
ShowGroupName="false"
EnableNoGroups="true"
HideGroupedColumn="true" ID="ctl222">
</ext:GroupingView>
</View>
<Plugins>
<ext:GridFilters runat="server" ID="GridFilters1" Local="true">
<Filters>
<ext:ListFilter DataIndex="Status" Options="1,2,3,4">
<Listeners>
<Activate Buffer="250" Fn="filtraNaoConcluido" />
</Listeners>
</ext:ListFilter>
</Filters>
</ext:GridFilters>
</Plugins>
</ext:GridPanel>