What Is ExtJS ExtJS 4+ Extensions Examples Tutorials

9Apr/122

ExtJS4 Combo & ASP.NET MVC3

First see basic ExtJS4 & ASP.NET MVC3 setup tutorial

In this example I will demonstrate just how easy it is to implement a type-ahead dropdown that will ping the server over AJAX every time a user types something in, and show a list of results with rich markup. It's amazing just how easy it is to do this with ASP.NET MVC3 and ExtJS4 data stores.

The end result looks something like this:

VN:F [1.9.22_1171]
Rating: 7.5/10 (8 votes cast)
2Apr/120

ExtJS4 & ASP.NET MVC3 Dictionary

See my previous example on getting ExtJS4 working with ASP.NET MVC3

Back when I used to work with ASP.NET AJAX Extensions 1.0 (5 year old tech), I used to do the following all the time:

JavaScript

Ext.Ajax.request({
	url: ...
	, jsonData: { data: form.getForm().getValues() }
	...
}); // eo Ajax

ASP.NET AJAX Extensions 1.0

[WebMethod(EnableSession = true)]
public static void MyWebMethod( Dictionary<string,object> data )
{
	...
}

...ASP.NET AJAX Extensions 1.0 handled the conversion of data from JSON to C# Dictionary, which is a pleasure to work with. To my great disappointment, I discovered that ASP.NET MVC3, the latest and greatest, won't do that for you! I had to find a solution...

VN:F [1.9.22_1171]
Rating: 9.1/10 (7 votes cast)
20Mar/124

ASP.NET MVC3 & ExtJS4 Errors

In my previous post I presented an example of a basic ASP.NET MVC3 controller connecting to an ExtJS4 data store and passing some data in XML format via store's load method.

So far I've run into just one issue with this setup - clean error handling. By default, ASP.NET MVC will spit out any exceptions in clear text (with <html> tags and everything), which is not very useful when building a quality web application. Here's what I want on my errors:

VN:F [1.9.22_1171]
Rating: 9.4/10 (7 votes cast)
12Mar/120

ASP.NET MVC3 XML & ExtJS4

In this example I will demonstrate how to use an ExtJS4 store to perform an XML data read from an ASP.NET MVC3 controller. First let me say that I wasted a LOT of time reading fake tutorials on these keywords - seems there are a lot of people who can explain the ASP.NET MVC3 side, but not how to actually connect it to an ExtJS4 store using a clean proxy, AND pass parameters to the server. Especially using XML for the return data.

So, let's say we just want a basic search box - when user types something in and hits Search, we will use an ExtJS4 store and POST to an ASP.NET MVC3 method, passing the search query as a JSON parameter, while returning results in XML. Here's the basic ExtJS model & store configuration:

// Basic model
Ext.define('MY.model.SearchResult', {
	extend: 'Ext.data.Model',
	fields: ['id','html']
});
 
// Basic store
Ext.create('Ext.data.Store',{
	model: 'MY.model.SearchResult',
	proxy: Ext.create('MY.proxy.MSAjaxProxy', {
		url: '/User/Search',
		reader: { type: 'xml', root: 'matches', record: 'match' }
	}) // eo proxy
}) // eo store
VN:F [1.9.22_1171]
Rating: 6.9/10 (9 votes cast)
15Dec/110

ASP.NET AJAX & ExtJS 4 Grid (4)

Read Previous Example First!

In this example, we'll improve our ExtJS 4 model to include an "association" that it will read from XML produced by AJAX call to ASP.NET. Most common association is one to many, for example: your Client can place multiple Orders. An ExtJS 4 data store and model can accommodate this.

The new XML data packet will look like this; notice hiddenAttributes:

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;matches&gt;
	&lt;match&gt;
		&lt;id&gt;0&lt;/id&gt;
		&lt;name&gt;Number 0&lt;/name&gt;
		&lt;hiddenAttributes&gt;
			&lt;attr&gt;
				&lt;name&gt;hidden1&lt;/name&gt;
				&lt;value&gt;val1&lt;/value&gt;
			&lt;/attr&gt;
			&lt;attr&gt;
				&lt;name&gt;hidden2&lt;/name&gt;
				&lt;value&gt;val2&lt;/value&gt;
			&lt;/attr&gt;
		&lt;/hiddenAttributes&gt;
	&lt;/match&gt;
	&lt;match&gt;&lt;id&gt;1&lt;/id&gt;&lt;name&gt;Number 1&lt;/name&gt;&lt;/match&gt;
	...
&lt;/matches&gt;
VN:F [1.9.22_1171]
Rating: 6.8/10 (5 votes cast)
Page 1 of 212