Sep 27, 2010, 12:36 PM
Hi,
Here is the sample
Here is the sample
<%@ Page Language="C#" Async="true" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
public delegate string AsyncMethodCaller();
[DirectMethod(ShowMask=true)]
public void LongTask()
{
this.AddOnPreRenderCompleteAsync(delegate(object sender, EventArgs e, AsyncCallback cb, object state)
{
AsyncMethodCaller caller = new AsyncMethodCaller(GenerateData);
return caller.BeginInvoke(cb, caller);
},
delegate(IAsyncResult ar)
{
AsyncMethodCaller caller = (AsyncMethodCaller)ar.AsyncState;
string data = caller.EndInvoke(ar);
this.Context.Items["ExtNetParam_DirectMethodResult"] = data;
});
}
protected string GenerateData()
{
//method that generates some data
System.Threading.Thread.Sleep(5000);
return "test data";
}
</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 runat="server">
<title></title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Button runat="server" Text="Call long task">
<Listeners>
<Click Handler="#{DirectMethods}.LongTask({success : function(result){Ext.Msg.alert('Data', result);}});" />
</Listeners>
</ext:Button>
</form>
</body>
</html>