In Ext.Net there are currently three main kinds for ajax interactions from client/browser to server/backend: DirectEvent, DirectMethod and Listeners.
This post will show you the simple usage and gives you an idea of the round trip from C# Codebehind (Objects/Parameters) via JSON to ExtJS running in Browser and back.
Let's start with the definitions from Ext.Net:
DirectMethod: A DirectMethod provides the ability to call server-side .NET Methods from client-side JavaScript code.
Sample for DirectMethod (recognized by the [DirectMethod] Annotation)
<script runat="server"> [DirectMethod] public void LogCompanyInfo(string name, int count) { string template = string.Concat("{0} has approximately {1} employees."); string[] employees = new string[4] { "1-5", "6-25", "26-100", "100+" }; this.lblAjax.Text = string.Format(template, name, employees[count]); } </script>
<ext:Label ID="lblAjax" runat="server" Text="AJAX ME" /> <ext:Button runat="server" Text="Submit"> <Listeners> <Click Handler="Ext.net.DirectMethods.LogCompanyInfo('Ext.NET, Inc.', 0);" /> </Listeners> </ext:Button>
DirectEvent: A action will trigger a Ajax request to the server and return it to the browser.
Sample for DirectEvent (recognized by the DirectEventArgs in signature)
<script runat="server"> protected void UpdateMsg(object sender, DirectEventArgs e) { X.Msg.Notify("Current Server Time: ", DateTime.Now.ToLongTimeString()).Show(); } </script>
<ext:Button ID="btnDirectEvent" runat="server" Text="Click Me"> <DirectEvents> <Click OnEvent="UpdateMsg"> <Confirmation ConfirmRequest="true" Title="Confirm Box" Message="Want to see the server time?" /> </Click> </DirectEvents> </ext:Button>
Listeners: A "Listener" is a client-side event Handler. The event handler will call a client-side JavaScript function if the Listener has been configured.
Sample for a Listener
<script runat="server"> protected void Page_Load(object sender, EventArgs e) { this.btnListener.Listeners.Click.Handler = "Ext.Msg.alert('Confirm', String.format('You Clicked {0}', el.id));"; } </script>
<ext:Button ID="btnListener" runat="server" Text="Execute Hanlder set by CodeBehind" />
Let's see with Firebug, what's happening on HTTP:
coming soon...
Keine Kommentare:
Kommentar veröffentlichen