PDA

View Full Version : [CLOSED] Combo fails in retrieving matching items with local paging (when typing in the field)



marco.morreale
Sep 05, 2012, 10:12 AM

Daniil
Sep 05, 2012, 11:01 AM
Hi,

You should set up

QueryMode="true"
for the ComboBox.

But it is not enough. Currently, the PagingStore filter method filters the current page records only. It is called internally. We will investigate a possibility to change it.

For now I can suggest the following override of the filter method.

Example

<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">
protected void Store_ReadData(object sender, StoreReadDataEventArgs e)
{
Store store = sender as Store;
store.DataSource = new object[]
{
new object[] { "1", "a" },
new object[] { "2", "b" },
new object[] { "3", "c" },
new object[] { "4", "aa" },
new object[] { "5", "bb" },
new object[] { "6", "cc" }
};
}
</script>

<!DOCTYPE html>

<html>
<head runat="server">
<title>Ext.NET v2 Example</title>

<script type="text/javascript">
var myFilter = function (filters, value) {
if (Ext.isString(filters)) {
filters = {
property: filters,
value: value
};
}

var me = this,
decoded = me.decodeFilters(filters),
i = 0,
length = decoded.length;

for (; i < length; i++) {
me.filters.replace(decoded[i]);
}

if (me.filters.getCount()) {
me.filterBy(me.filters.get(0).filterFn);
}
};
</script>
</head>
<body>
<ext:ResourceManager runat="server" />

<ext:ComboBox
ID="ComboBox1"
runat="server"
Width="300"
MinChars="1"
PageSize="3"
QueryMode="Local">
<Store>
<ext:Store
runat="server"
OnReadData="Store_ReadData"
PageSize="3"
RemotePaging="false"
IsPagingStore="true">
<CustomConfig>
<ext:ConfigItem Name="filter" Value="myFilter" Mode="Raw" />
</CustomConfig>
<Model>
<ext:Model runat="server">
<Fields>
<ext:ModelField Name="value" />
<ext:ModelField Name="text" />
</Fields>
</ext:Model>
</Model>
<Proxy>
<ext:PageProxy>
<Reader>
<ext:ArrayReader />
</Reader>
</ext:PageProxy>
</Proxy>
</ext:Store>
</Store>
</ext:ComboBox>
</body>
</html>

marco.morreale
Sep 05, 2012, 11:17 AM
Sorry Daniil,
you say to try QueryMode="true" but in you code I see QueryMode="local"

Is "true" an option for QueryMode?

What will I use?

Thanks
M

Daniil
Sep 05, 2012, 11:28 AM
Sorry, it should be

QueryMode="Local"

marco.morreale
Sep 05, 2012, 1:58 PM
As I set QueryMode="Local" the list isn't loaded anymore (neither first page).
Do I miss anything else?
M

marco.morreale
Sep 05, 2012, 2:06 PM
Sorry Daniil , it was my mistake. I mispalced the CustomConfig tag.

Now:

if I set with QueryMode="true" then
the search is working well but the list loads only the first page

without QueryMode="true"
the search dosn't work but the list loads all the pages correctly


M

Daniil
Sep 05, 2012, 2:35 PM
if I set with QueryMode="true" then
the search is working well but the list loads only the first page

without QueryMode="true"
the search dosn't work but the list loads all the pages correctly


It is a bit difficult to understand. Please clarify what options you are actually using.

marco.morreale
Sep 05, 2012, 2:49 PM
Version A (with QueryMode="Local"):
- filter is OK: item in page 2,3,... are found and shown correctly when I type in the field
- paging is not working: il I press th arrow key only the first page is shown in the list. No way to go to the following pages



<ext:ComboBox
ID="cmbCustomerLogin"
runat="server"
SelectOnFocus="true"
EmptyText="seleziona un cliente"
ForceSelection="true"
DisplayField="Name"
ValueField="No_"
MinChars="1"
ListWidth="500"
Note="Cliente Selezionato"
NoteAlign="Top"
MatchFieldWidth="false"
TypeAhead="false"
HideBaseTrigger="false"
Width="210px"
LoadingText="Ricerca..."
Visible="false"
PageSize="10"
QueryMode="Local"
>


Version B (without QueryMode="Local")
- filter is not working: nothing is displayed when I type in the field
- paging is ok: il I press th arrow key the first page is shown and i can navigate through the pages



<ext:ComboBox
ID="cmbCustomerLogin"
runat="server"
SelectOnFocus="true"
EmptyText="seleziona un cliente"
ForceSelection="true"
DisplayField="Name"
ValueField="No_"
MinChars="1"
ListWidth="500"
Note="Cliente Selezionato"
NoteAlign="Top"
MatchFieldWidth="false"
TypeAhead="false"
HideBaseTrigger="false"
Width="210px"
LoadingText="Ricerca..."
Visible="false"
PageSize="10"
>

Daniil
Sep 05, 2012, 4:02 PM
Thank you for clarification.

Could you provide a sample for this case? A simple sample like I posted above which we can run locally without any changes.


Version A (with QueryMode="Local"):
- filter is OK: item in page 2,3,... are found and shown correctly when I type in the field
- paging is not working: il I press th arrow key only the first page is shown in the list. No way to go to the following pages



<ext:ComboBox
ID="cmbCustomerLogin"
runat="server"
SelectOnFocus="true"
EmptyText="seleziona un cliente"
ForceSelection="true"
DisplayField="Name"
ValueField="No_"
MinChars="1"
ListWidth="500"
Note="Cliente Selezionato"
NoteAlign="Top"
MatchFieldWidth="false"
TypeAhead="false"
HideBaseTrigger="false"
Width="210px"
LoadingText="Ricerca..."
Visible="false"
PageSize="10"
QueryMode="Local"
>

marco.morreale
Sep 10, 2012, 9:44 AM
It's a bit hard to me to build a locally running sample .

Does it help if I provide you with the simple asmx.cs file?




[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public StoreResponseData getCustomerList(string Username)
{
DataClassesDataContext dc = new DataClassesDataContext();

var dataQuery = from d in dc.SP_B2B_GetCustomerList(Username)
select new
{
No_ = d.No_,
Name = d.Name
};

var recordList = dataQuery.ToList<object>();
StoreResponseData storeResponse = new StoreResponseData();
storeResponse.Data = JSON.Serialize(recordList);
storeResponse.Total = recordList.Count;
return storeResponse;
}

Daniil
Sep 10, 2012, 10:46 AM
Thanks for the WebService. It is helpful, but, unfortunately, not enough for me to reproduce the problem.

Please clarify what exactly problem are facing with preparing a sample? Can we somehow help?

Maybe this technique can help you.
How to prepare a sample (http://forums.ext.net/showthread.php?13672&p=56687&viewfull=1#post56687)

marco.morreale
Sep 10, 2012, 11:08 AM
Should I create a datacontext and a stored procedure both binding to the Nortwhind database?
Then how shoud I post them?
M

Daniil
Sep 10, 2012, 11:30 AM
@Marco, it would be best if you will be able replace database with some dummy data for testing purpose. Is it possible?

marco.morreale
Sep 11, 2012, 8:43 AM
Hi Daniil,
finally I could reproduce the bejavior in a simple example.
You can see that

with QueryMode="Local" I get filtering working
without QueryMode="Local" I get paging working

Is there a way to get both of them working?
Thanks in advance
Marco Morreale




<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">

private object TestData
{
get
{
return new object[]
{
new object[] { "AL", "Alabama", "The Heart of Dixie" },
new object[] { "AK", "Alaska", "The Land of the Midnight Sun" },
new object[] { "AZ", "Arizona", "The Grand Canyon State" },
new object[] { "AR", "Arkansas", "The Natural State" },
new object[] { "CA", "California", "The Golden State" },
new object[] { "CO", "Colorado", "The Mountain State" },
new object[] { "CT", "Connecticut", "The Constitution State" },
new object[] { "DE", "Delaware", "The First State" },
new object[] { "DC", "District of Columbia", "The Nation's Capital" },
new object[] { "FL", "Florida", "The Sunshine State" },
new object[] { "GA", "Georgia", "The Peach State" },
new object[] { "HI", "Hawaii", "The Aloha State" },
new object[] { "ID", "Idaho", "Famous Potatoes" },
new object[] { "IL", "Illinois", "The Prairie State" },
new object[] { "IN", "Indiana", "The Hospitality State" },
new object[] { "IA", "Iowa", "The Corn State" },
new object[] { "KS", "Kansas", "The Sunflower State" },
new object[] { "KY", "Kentucky", "The Bluegrass State" },
new object[] { "LA", "Louisiana", "The Bayou State" },
new object[] { "ME", "Maine", "The Pine Tree State" },
new object[] { "MD", "Maryland", "Chesapeake State" },
new object[] { "MA", "Massachusetts", "The Spirit of America" },
new object[] { "MI", "Michigan", "Great Lakes State" },
new object[] { "MN", "Minnesota", "North Star State" },
new object[] { "MS", "Mississippi", "Magnolia State" },
new object[] { "MO", "Missouri", "Show Me State" },
new object[] { "MT", "Montana", "Big Sky Country" },
new object[] { "NE", "Nebraska", "Beef State" },
new object[] { "NV", "Nevada", "Silver State" },
new object[] { "NH", "New Hampshire", "Granite State" },
new object[] { "NJ", "New Jersey", "Garden State" },
new object[] { "NM", "New Mexico", "Land of Enchantment" },
new object[] { "NY", "New York", "Empire State" },
new object[] { "NC", "North Carolina", "First in Freedom" },
new object[] { "ND", "North Dakota", "Peace Garden State" },
new object[] { "OH", "Ohio", "The Heart of it All" },
new object[] { "OK", "Oklahoma", "Oklahoma is OK" },
new object[] { "OR", "Oregon", "Pacific Wonderland" },
new object[] { "PA", "Pennsylvania", "Keystone State" },
new object[] { "RI", "Rhode Island", "Ocean State" },
new object[] { "SC", "South Carolina", "Nothing Could be Finer" },
new object[] { "SD", "South Dakota", "Great Faces, Great Places" },
new object[] { "TN", "Tennessee", "Volunteer State" },
new object[] { "TX", "Texas", "Lone Star State" },
new object[] { "UT", "Utah", "Salt Lake State" },
new object[] { "VT", "Vermont", "Green Mountain State" },
new object[] { "VA", "Virginia", "Mother of States" },
new object[] { "WA", "Washington", "Green Tree State" },
new object[] { "WV", "West Virginia", "Mountain State" },
new object[] { "WI", "Wisconsin", "America's Dairyland" },
new object[] { "WY", "Wyoming", "Like No Place on Earth" }
};
}
}
</script>

<!DOCTYPE html >

<html >
<head runat="server">
<title></title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />

<ext:ComboBox
runat="server"
FieldLabel="Select a single state"
DisplayField="name"
Width="400"
LabelWidth="130"
QueryMode="Local"
TypeAhead="true"
PageSize="5"
>
<Store>
<ext:Store runat="server" Data="<%# TestData %>" AutoDataBind="true" PageSize="5" IsPagingStore="true">
<Model>
<ext:Model runat="server">
<Fields>
<ext:ModelField Name="abbr" />
<ext:ModelField Name="name" />
<ext:ModelField Name="slogan" />
</Fields>
</ext:Model>
</Model>

<Reader>
<ext:ArrayReader />
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>


</form>
</body>
</html>

marco.morreale
Sep 11, 2012, 9:01 AM
Sorry Daniil,
i didn't include your hint in my example.

Please, see the last version. Anyway, the problem presists.



<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">

private object TestData
{
get
{
return new object[]
{
new object[] { "AL", "Alabama", "The Heart of Dixie" },
new object[] { "AK", "Alaska", "The Land of the Midnight Sun" },
new object[] { "AZ", "Arizona", "The Grand Canyon State" },
new object[] { "AR", "Arkansas", "The Natural State" },
new object[] { "CA", "California", "The Golden State" },
new object[] { "CO", "Colorado", "The Mountain State" },
new object[] { "CT", "Connecticut", "The Constitution State" },
new object[] { "DE", "Delaware", "The First State" },
new object[] { "DC", "District of Columbia", "The Nation's Capital" },
new object[] { "FL", "Florida", "The Sunshine State" },
new object[] { "GA", "Georgia", "The Peach State" },
new object[] { "HI", "Hawaii", "The Aloha State" },
new object[] { "ID", "Idaho", "Famous Potatoes" },
new object[] { "IL", "Illinois", "The Prairie State" },
new object[] { "IN", "Indiana", "The Hospitality State" },
new object[] { "IA", "Iowa", "The Corn State" },
new object[] { "KS", "Kansas", "The Sunflower State" },
new object[] { "KY", "Kentucky", "The Bluegrass State" },
new object[] { "LA", "Louisiana", "The Bayou State" },
new object[] { "ME", "Maine", "The Pine Tree State" },
new object[] { "MD", "Maryland", "Chesapeake State" },
new object[] { "MA", "Massachusetts", "The Spirit of America" },
new object[] { "MI", "Michigan", "Great Lakes State" },
new object[] { "MN", "Minnesota", "North Star State" },
new object[] { "MS", "Mississippi", "Magnolia State" },
new object[] { "MO", "Missouri", "Show Me State" },
new object[] { "MT", "Montana", "Big Sky Country" },
new object[] { "NE", "Nebraska", "Beef State" },
new object[] { "NV", "Nevada", "Silver State" },
new object[] { "NH", "New Hampshire", "Granite State" },
new object[] { "NJ", "New Jersey", "Garden State" },
new object[] { "NM", "New Mexico", "Land of Enchantment" },
new object[] { "NY", "New York", "Empire State" },
new object[] { "NC", "North Carolina", "First in Freedom" },
new object[] { "ND", "North Dakota", "Peace Garden State" },
new object[] { "OH", "Ohio", "The Heart of it All" },
new object[] { "OK", "Oklahoma", "Oklahoma is OK" },
new object[] { "OR", "Oregon", "Pacific Wonderland" },
new object[] { "PA", "Pennsylvania", "Keystone State" },
new object[] { "RI", "Rhode Island", "Ocean State" },
new object[] { "SC", "South Carolina", "Nothing Could be Finer" },
new object[] { "SD", "South Dakota", "Great Faces, Great Places" },
new object[] { "TN", "Tennessee", "Volunteer State" },
new object[] { "TX", "Texas", "Lone Star State" },
new object[] { "UT", "Utah", "Salt Lake State" },
new object[] { "VT", "Vermont", "Green Mountain State" },
new object[] { "VA", "Virginia", "Mother of States" },
new object[] { "WA", "Washington", "Green Tree State" },
new object[] { "WV", "West Virginia", "Mountain State" },
new object[] { "WI", "Wisconsin", "America's Dairyland" },
new object[] { "WY", "Wyoming", "Like No Place on Earth" }
};
}
}
</script>

<!DOCTYPE html >

<html >
<head runat="server">
<title></title>
<script type="text/javascript">
var myFilter = function (filters, value) { if (Ext.isString(filters)) { filters = { property: filters, value: value }; } var me = this, decoded = me.decodeFilters(filters), i = 0, length = decoded.length; for (; i < length; i++) { me.filters.replace(decoded[i]); } if (me.filters.getCount()) { me.filterBy(me.filters.get(0).filterFn); } };
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />

<ext:ComboBox
runat="server"
FieldLabel="Select a single state"
DisplayField="name"
Width="400"
LabelWidth="130"
QueryMode="Local"
TypeAhead="true"
PageSize="5"
>
<Store>
<ext:Store runat="server" Data="<%# TestData %>" AutoDataBind="true" PageSize="5" IsPagingStore="true" RemotePaging="false">
<CustomConfig>
<ext:ConfigItem Name="filter" Value="myFilter" Mode="Raw" />
</CustomConfig>
<Model>
<ext:Model runat="server">
<Fields>
<ext:ModelField Name="abbr" />
<ext:ModelField Name="name" />
<ext:ModelField Name="slogan" />
</Fields>
</ext:Model>
</Model>

<Reader>
<ext:ArrayReader />
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>


</form>
</body>
</html>

marco.morreale
Sep 11, 2012, 9:12 AM
Daniil,
if it helps I noticed that you example of message #2 suffers of the same problem.
Paging is not working even there.
M

Daniil
Sep 11, 2012, 12:58 PM
@Marco, thank you for the samples and detailed explanation. It much helped me to understand the requirement better.

We are investigating a possibility to achieve it.

Vladimir
Sep 11, 2012, 9:16 PM
Hi,

Please update from SVN and retest. Now combo with pager should work correctly

Daniil
Sep 12, 2012, 6:33 AM
Please update from SVN and retest. Now combo with pager should work correctly

I can confirm, it works well. Though I discovered a scenario when paging doesn't work well.

Steps to reproduce.

1. Run the sample.
2. Expand the ComboBox.
3. Go to the page #3.
4. Type "m" in the ComboBox.
5. Issue: there is the page #2 in the PagingToolbar, but, seems, it shows the records of the first page. Also the "Previous Page" button doesn't work. The "First Page" button works, but, actually, it just refreshes the PagingToolbar to show the correct info, it still shows the same records (and, again, they are correct for the first page).

Example

<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">

private object TestData
{
get
{
return new object[]
{
new object[] { "AL", "Alabama", "The Heart of Dixie" },
new object[] { "AK", "Alaska", "The Land of the Midnight Sun" },
new object[] { "AZ", "Arizona", "The Grand Canyon State" },
new object[] { "AR", "Arkansas", "The Natural State" },
new object[] { "CA", "California", "The Golden State" },
new object[] { "CO", "Colorado", "The Mountain State" },
new object[] { "CT", "Connecticut", "The Constitution State" },
new object[] { "DE", "Delaware", "The First State" },
new object[] { "DC", "District of Columbia", "The Nation's Capital" },
new object[] { "FL", "Florida", "The Sunshine State" },
new object[] { "GA", "Georgia", "The Peach State" },
new object[] { "HI", "Hawaii", "The Aloha State" },
new object[] { "ID", "Idaho", "Famous Potatoes" },
new object[] { "IL", "Illinois", "The Prairie State" },
new object[] { "IN", "Indiana", "The Hospitality State" },
new object[] { "IA", "Iowa", "The Corn State" },
new object[] { "KS", "Kansas", "The Sunflower State" },
new object[] { "KY", "Kentucky", "The Bluegrass State" },
new object[] { "LA", "Louisiana", "The Bayou State" },
new object[] { "ME", "Maine", "The Pine Tree State" },
new object[] { "MD", "Maryland", "Chesapeake State" },
new object[] { "MA", "Massachusetts", "The Spirit of America" },
new object[] { "MI", "Michigan", "Great Lakes State" },
new object[] { "MN", "Minnesota", "North Star State" },
new object[] { "MS", "Mississippi", "Magnolia State" },
new object[] { "MO", "Missouri", "Show Me State" },
new object[] { "MT", "Montana", "Big Sky Country" },
new object[] { "NE", "Nebraska", "Beef State" },
new object[] { "NV", "Nevada", "Silver State" },
new object[] { "NH", "New Hampshire", "Granite State" },
new object[] { "NJ", "New Jersey", "Garden State" },
new object[] { "NM", "New Mexico", "Land of Enchantment" },
new object[] { "NY", "New York", "Empire State" },
new object[] { "NC", "North Carolina", "First in Freedom" },
new object[] { "ND", "North Dakota", "Peace Garden State" },
new object[] { "OH", "Ohio", "The Heart of it All" },
new object[] { "OK", "Oklahoma", "Oklahoma is OK" },
new object[] { "OR", "Oregon", "Pacific Wonderland" },
new object[] { "PA", "Pennsylvania", "Keystone State" },
new object[] { "RI", "Rhode Island", "Ocean State" },
new object[] { "SC", "South Carolina", "Nothing Could be Finer" },
new object[] { "SD", "South Dakota", "Great Faces, Great Places" },
new object[] { "TN", "Tennessee", "Volunteer State" },
new object[] { "TX", "Texas", "Lone Star State" },
new object[] { "UT", "Utah", "Salt Lake State" },
new object[] { "VT", "Vermont", "Green Mountain State" },
new object[] { "VA", "Virginia", "Mother of States" },
new object[] { "WA", "Washington", "Green Tree State" },
new object[] { "WV", "West Virginia", "Mountain State" },
new object[] { "WI", "Wisconsin", "America's Dairyland" },
new object[] { "WY", "Wyoming", "Like No Place on Earth" }
};
}
}
</script>

<!DOCTYPE html>

<html>
<head runat="server">
<title>Ext.NET v2 Example</title>
</head>
<body>
<ext:ResourceManager runat="server" />

<ext:ComboBox
runat="server"
FieldLabel="Select a state"
DisplayField="name"
Width="400"
PageSize="5"
QueryMode="Local">
<Store>
<ext:Store
runat="server"
Data="<%# TestData %>"
PageSize="5"
IsPagingStore="true">
<Model>
<ext:Model runat="server">
<Fields>
<ext:ModelField Name="abbr" />
<ext:ModelField Name="name" />
<ext:ModelField Name="slogan" />
</Fields>
</ext:Model>
</Model>
<Reader>
<ext:ArrayReader />
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>
</body>
</html>

marco.morreale
Sep 12, 2012, 8:11 AM
Hi Vladimir.
Sorry, should I update from 2.0 or 2.1?
Are you going to release a new update for the bug found by Daniil?
Thanks in advance
Marco

marco.morreale
Sep 12, 2012, 8:39 AM
Another question: how can I customize the filtering so that it filters by "Contains" and not "StartWith"?
Thanks again
Marco

Daniil
Sep 12, 2012, 9:58 AM
Sorry, should I update from 2.0 or 2.1?
Are you going to release a new update for the bug found by Daniil?


The 2.1 branch:
http://svn.ext.net/premium/branches/2.1/

Yes, this fix will be included in the next v2.1 release, no date yet.


Another question: how can I customize the filtering so that it filters by "Contains" and not "StartWith"?

A solution is here (the BeforeQuery listener):
http://forums.ext.net/showthread.php?20403&p=88093&viewfull=1#post88093

A new feature should appear in ExtJS according this post:
http://www.sencha.com/forum/showthread.php?235564&p=883454&viewfull=1#post883454

Then it will be easy to configure it with respective config instead of BeforeQuery hack.

marco.morreale
Sep 12, 2012, 10:30 AM
Thank you Daniil, it woks but... is it possible to make the search case insensitive?
My list is all uppercase and filtering is not working.
Marco

Daniil
Sep 12, 2012, 12:41 PM
Yes, it is possible, JavaScript regular expressions support it.
http://www.w3schools.com/jsref/jsref_obj_regexp.asp

So, please replace

queryEvent.query = new RegExp(q);
with

queryEvent.query = new RegExp(q, 'i');

marco.morreale
Sep 12, 2012, 1:20 PM
That's what I need.
Thank you.
M

Daniil
Sep 12, 2012, 1:41 PM
I can confirm, it works well. Though I discovered a scenario when paging doesn't work well.

Steps to reproduce.

1. Run the sample.
2. Expand the ComboBox.
3. Go to the page #3.
4. Type "m" in the ComboBox.
5. Issue: there is the page #2 in the PagingToolbar, but, seems, it shows the records of the first page. Also the "Previous Page" button doesn't work. The "First Page" button works, but, actually, it just refreshes the PagingToolbar to show the correct info, it still shows the same records (and, again, they are correct for the first page).

Example

<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">

private object TestData
{
get
{
return new object[]
{
new object[] { "AL", "Alabama", "The Heart of Dixie" },
new object[] { "AK", "Alaska", "The Land of the Midnight Sun" },
new object[] { "AZ", "Arizona", "The Grand Canyon State" },
new object[] { "AR", "Arkansas", "The Natural State" },
new object[] { "CA", "California", "The Golden State" },
new object[] { "CO", "Colorado", "The Mountain State" },
new object[] { "CT", "Connecticut", "The Constitution State" },
new object[] { "DE", "Delaware", "The First State" },
new object[] { "DC", "District of Columbia", "The Nation's Capital" },
new object[] { "FL", "Florida", "The Sunshine State" },
new object[] { "GA", "Georgia", "The Peach State" },
new object[] { "HI", "Hawaii", "The Aloha State" },
new object[] { "ID", "Idaho", "Famous Potatoes" },
new object[] { "IL", "Illinois", "The Prairie State" },
new object[] { "IN", "Indiana", "The Hospitality State" },
new object[] { "IA", "Iowa", "The Corn State" },
new object[] { "KS", "Kansas", "The Sunflower State" },
new object[] { "KY", "Kentucky", "The Bluegrass State" },
new object[] { "LA", "Louisiana", "The Bayou State" },
new object[] { "ME", "Maine", "The Pine Tree State" },
new object[] { "MD", "Maryland", "Chesapeake State" },
new object[] { "MA", "Massachusetts", "The Spirit of America" },
new object[] { "MI", "Michigan", "Great Lakes State" },
new object[] { "MN", "Minnesota", "North Star State" },
new object[] { "MS", "Mississippi", "Magnolia State" },
new object[] { "MO", "Missouri", "Show Me State" },
new object[] { "MT", "Montana", "Big Sky Country" },
new object[] { "NE", "Nebraska", "Beef State" },
new object[] { "NV", "Nevada", "Silver State" },
new object[] { "NH", "New Hampshire", "Granite State" },
new object[] { "NJ", "New Jersey", "Garden State" },
new object[] { "NM", "New Mexico", "Land of Enchantment" },
new object[] { "NY", "New York", "Empire State" },
new object[] { "NC", "North Carolina", "First in Freedom" },
new object[] { "ND", "North Dakota", "Peace Garden State" },
new object[] { "OH", "Ohio", "The Heart of it All" },
new object[] { "OK", "Oklahoma", "Oklahoma is OK" },
new object[] { "OR", "Oregon", "Pacific Wonderland" },
new object[] { "PA", "Pennsylvania", "Keystone State" },
new object[] { "RI", "Rhode Island", "Ocean State" },
new object[] { "SC", "South Carolina", "Nothing Could be Finer" },
new object[] { "SD", "South Dakota", "Great Faces, Great Places" },
new object[] { "TN", "Tennessee", "Volunteer State" },
new object[] { "TX", "Texas", "Lone Star State" },
new object[] { "UT", "Utah", "Salt Lake State" },
new object[] { "VT", "Vermont", "Green Mountain State" },
new object[] { "VA", "Virginia", "Mother of States" },
new object[] { "WA", "Washington", "Green Tree State" },
new object[] { "WV", "West Virginia", "Mountain State" },
new object[] { "WI", "Wisconsin", "America's Dairyland" },
new object[] { "WY", "Wyoming", "Like No Place on Earth" }
};
}
}
</script>

<!DOCTYPE html>

<html>
<head runat="server">
<title>Ext.NET v2 Example</title>
</head>
<body>
<ext:ResourceManager runat="server" />

<ext:ComboBox
runat="server"
FieldLabel="Select a state"
DisplayField="name"
Width="400"
PageSize="5"
QueryMode="Local">
<Store>
<ext:Store
runat="server"
Data="<%# TestData %>"
PageSize="5"
IsPagingStore="true">
<Model>
<ext:Model runat="server">
<Fields>
<ext:ModelField Name="abbr" />
<ext:ModelField Name="name" />
<ext:ModelField Name="slogan" />
</Fields>
</ext:Model>
</Model>
<Reader>
<ext:ArrayReader />
</Reader>
</ext:Store>
</Store>
</ext:ComboBox>
</body>
</html>


This has been fixed in the 2.1 branch, revision #4346.

Marco, thank you for pointing this problem out. You made Ext.NET better!:)