The parameters sent from server to client are keeping their type (bool, int, string, collection).
Example
Make a callback to the server.
ob_post.post(null, 'myServerMethod');
Server is returning an array of different value types.
// array list
public ArrayList myServerMethod1()
{
// add different types of elements to an arraylist
ArrayList al = new ArrayList();
al.Add("a");
al.Add(1);
al.Add(true);
al.Add(new string[]{"x", "y", "z"});
al.Add(new int[]{2, 3, 4, 5});
al.Add(new bool[]{true, false});
ExecBeforeLoad("myFunction(response)");
return al;
}
// associative array
public Hashtable myServerMethod2()
{
// add different types of elements using a name-value pair collection
Hashtable ht = new Hashtable();
ht.Add("color", "red");
ht.Add("sales", 21331218);
ht.Add("isAsociative", true);
ExecBeforeLoad("myFunction(response)");
return ht;
}
Script function, triggered by ExecBeforeLoad method, is looping through the response object items.
They preserve their types at client.
// client function triggered in ExecBeforeLoad method
function myFunction(response)
{
for (key in response.content)
{
var value = response.content[key];
var valueType = typeof response.content[key];
// process data
// ...
}
}
Array List
Hashtable
For more information about the response object please check the client documentation.
See also: ExecBeforeLoad tutorial.
| |