PDA

View Full Version : POST Thread: DirectMethod(). Why do postback the all page ?



jhuamani
Jun 25, 2015, 10:07 PM
Hello Forum: I'm really wondering why any Direct Method must be calling from
any part of the page make a postback. I'm adding an example from my programming.

<javascript>

function openVincular(Tipo) {
document.getElementById("hfEstadoVinMapa").value = Tipo;
App.direct.OpenVentanaVincular(Tipo);
}
</javascript>

<Html>
<asp:ImageButton id="ibVincularFicha" runat="server" ImageUrl="Images/MapasGeo/09.png" BorderStyle="Outset" OnClientClick="openVincular(1); return false;" BorderWidth="1px" ToolTip="Fichas Vincular" BorderColor="White" ></asp:ImageButton>
</Html>

<ServerSide>

<DirectMethod()> _
Public Sub OpenVentanaVincular(ByVal tipo As Integer)
Me.Cargar_UnidadesVin()
Me.cboGestionvin.Clear()
Me.cboFicMod.Store.Clear()
Me.txtDescripcionFichas.Text = ""
Me.cboFicMod.Clear()
Me.storeFicMod.RemoveAll()
Me.grvListaFichasVin.ClearContent()
Me.Window7.Show()
Ext.Net.X.Js.AddScript("App.Window7.alignTo(Ext.ge tBody(), 'tl', [90, 150]); App.Window7.expand();")
End Sub
</ServerSide>

By the way, even with ext.net Button does the same results.


<Ext.Net Buttom>
<ext:Button ID="btProcesar" runat="server"
Text="Procesar"
Icon="PaintbrushColor" >
<ToolTips>
<ext:ToolTip runat="server" ID="ttProcesar" Title="Procesar ClasificaciĆ³n" Width="125" TitleAlign="Center"></ext:ToolTip>
</ToolTips>
<DirectEvents>
<Click OnEvent="LlenarItemsClass" Timeout="100000" Before="Ext.Msg.wait('Procesando datos...', 'Agregando clasificaciones');" Failure="Ext.Msg.hide();" >
</Click>
</DirectEvents>
</ext:Button>
</Ext.Net Buttom>

Please, I need any way for not make a postback. Why, I need this because I have a MapControl,
and this working with postback if one feature map is hard to load for first time, this direct
method reload again. And I trying to figure it out why ext.net makes a postback a "windows"
is not necessary for reload the whole page.

Best Regards
Interzone Developers.

Daniil
Aug 21, 2015, 10:28 AM
Hi @jhuamani,

I am not sure I understand the problem. A DirectMethod should not reload a page with a hard PostBack. Does that happen?

Or maybe you mean that a form is being submitted? Yes, by default if there is a <form runat="server"> on the page, it is being submitted. To change it please use this attribute for a DirectMethod.

[DirectMethod(Type = DirectEventType.Load)]

Here is a full example.

Example

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

<script runat="server">
[DirectMethod(Type = DirectEventType.Load)]
public void TestDirectMethod()
{
X.Msg.Alert("No submit", this.TextField1.Text).Show();
}
</script>

<!DOCTYPE html>
<html>
<head runat="server">
<title>Ext.NET v3 Example</title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />

<ext:TextField ID="TextField1" runat="server" />

<ext:Button runat="server" Text="Test DirectMethod" Handler="App.direct.TestDirectMethod();" />
</form>
</body>
</html>

jhuamani
Aug 22, 2015, 2:38 PM
ok dani thank you very much for the contribution, I solved the problem