Thanks guys, that was helpful!
I was thinking along the lines of the example below whereby the list filter has the LabelField property defined. I wasn't clear on what arguments to pass to the setValue() method. But Daniil's code sample demonstrated that it indeed works well accepting an array of DataIndex matched values. You can mark this thread as closed.
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<%@ Import Namespace="System.Data" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
var store = this.GridPanel1.GetStore();
store.DataSource = new object[]
{
new object[] { 1, "test1" },
new object[] { 2, "test2" },
new object[] { 3, "test3" },
new object[] { 1, "test4" },
new object[] { 2, "test5" },
};
store.DataBind();
// Populate the list filter options
var filterTable = new DataTable();
filterTable.Columns.Add("StatusID", typeof(Int32));
filterTable.Columns.Add("StatusName", typeof(String));
filterTable.Rows.Add(new object[] { 1, "Active" });
filterTable.Rows.Add(new object[] { 2, "Inactive" });
filterTable.Rows.Add(new object[] { 3, "Unknown" });
StoreFilterOptions.DataSource = filterTable;
StoreFilterOptions.DataBind();
}
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Ext.NET Example</title>
<script type="text/javascript">
var set = function () {
var gridFilters = GridPanel1.filters,
listFilter = gridFilters.filters.get(0);
listFilter.setValue([1, 3]);
listFilter.setActive(true);
};
var valueStatusRenderer = function (value, metadata, record) {
if (!Ext.isEmpty(record)) {
var statusId = record.get("StatusID");
switch (statusId) {
case 1:
value = "Active";
break;
case 2:
value = "Inactive";
break;
case 3:
value = "Unknown";
break;
}
}
return value;
};
</script>
</head>
<body>
<form id="Form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:Button ID="Button1" runat="server" Text="Set values for ListFilter">
<Listeners>
<Click Fn="set" />
</Listeners>
</ext:Button>
<ext:Store ID="StoreFilterOptions" AutoLoad="true" runat="server">
<Reader>
<ext:JsonReader IDProperty="StatusID">
<Fields>
<ext:RecordField Name="StatusID" />
<ext:RecordField Name="StatusName" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
<Store>
<ext:Store ID="Store1" runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="StatusID" />
<ext:RecordField Name="Desc" />
</Fields>
</ext:ArrayReader>
</Reader>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column Header="Status" DataIndex="StatusID">
<Renderer Fn="valueStatusRenderer" />
</ext:Column>
<ext:Column Header="Description" DataIndex="Desc">
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:GridFilters ID="GridFilters1" runat="server" Local="true">
<Filters>
<ext:ListFilter DataIndex="StatusID" LabelField="StatusName" StoreID="StoreFilterOptions" />
</Filters>
</ext:GridFilters>
</Plugins>
</ext:GridPanel>
</form>
</body>
</html>