Confirm MessageBox with ButtonsConfig - Master Page - Runtime Error in Microsoft JScript: 'Prixmasol' is undefined

  1. #1

    Confirm MessageBox with ButtonsConfig - Master Page - Runtime Error in Microsoft JScript: 'Prixmasol' is undefined

    I'm trying to use the implementation of the confirmation dialog with ButtonsConfig, but when I try to call the specified method on the buttons Yes or No, I get the following javascript error "Runtime Error in Microsoft JScript: 'Prixmasol' is undefined".

    When I test the example without a MasterPage everything works OK, but when I have a masterpage I always get the same error.

    Admin.Master
    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="Admin.master.cs" Inherits="Admin" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!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>
      
      <asp:ContentPlaceHolder ID="head" runat="server">
      </asp:ContentPlaceHolder>
    </head>
    <body>
      <form id="form1" runat="server">
                <ext:ResourceManager ID="ResourceManager1" IDMode="Static" runat="server" DirectMethodNamespace="Prixmasol" />
     
      <div>
        <ext:Viewport ID="Viewport1" runat="server" Layout="border">
          <Items>
            <ext:Panel ID="PanelPrincipal" runat="server" Width="300" Border="false" Region="West" Layout="VBox">
              <LayoutConfig>
                <ext:VBoxLayoutConfig Padding="5" Align="Stretch" />
              </LayoutConfig>
              <Items>
                <ext:Panel ID="PanelSecundario" runat="server" Flex="1" Layout="Accordion" Margins="0 0 15 0">
                  <LayoutConfig>
                    <ext:AccordionLayoutConfig OriginalHeader="true" />
                  </LayoutConfig>
                  <Content>
                    <asp:Repeater ID="DinamycMenu" runat="server" >
                      <ItemTemplate>
                        <ext:Panel ID="Panel3" runat="server" Title="Item 1" Border="false" />
                      </ItemTemplate>
                    </asp:Repeater>
                  </Content>
                  <Items>
                    <ext:Panel ID="Panel3" runat="server" Title="Item 1" Border="false" />
                    <ext:Panel ID="Panel4" runat="server" Title="Item 2" Border="false" />
                    <ext:Panel ID="Panel5" runat="server" Title="Item 3" Border="false" />
                    <ext:Panel ID="Panel6" runat="server" Title="Item 4" Border="false" />
                    <ext:Panel ID="Panel7" runat="server" Title="Item 5" Border="false" />
                  </Items>
                </ext:Panel>
              </Items>
            </ext:Panel>
            <ext:Panel ID="Panel14" runat="server" Margins="5" Region="Center" Padding="10">
              <TopBar>
                <ext:Toolbar ID="Toolbar1" runat="server">
                  <Content>
                    <asp:LoginView ID="lgview" runat="server">
                      <LoggedInTemplate>
                        <asp:LoginStatus ID="LoginStatus1" runat="server" />
                        <ext:Button ID="btnLogOut" runat="server" Text="Cerrar Sessión" Icon="LockOpen" />
                      </LoggedInTemplate>
                    </asp:LoginView>
                  </Content>
                </ext:Toolbar>
              </TopBar>
              <Content>
                <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
                
                </asp:ContentPlaceHolder>
              </Content>
            </ext:Panel>
          </Items>
        </ext:Viewport>
      </div>
      </form>
    </body>
    </html>
    ConfiguracionBD.aspx
    <%@ Page Title="" Language="C#" MasterPageFile="~/Configuracion/Admin.master" AutoEventWireup="true"
      CodeFile="ConfiguracionBD.aspx.cs" Inherits="Configuracion_ConfiguracionBD" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    
      <script language="javascript" src="../js/jquery-1.4.1.js" type="text/javascript"></script>
    
      <script language="javascript" src="../js/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    
      <script type="text/javascript">
        var notifyDrop = function(dd, e, data) {
          $("#<%=txtBaseDatos.ClientID%>").val(data.node.attributes.BaseDatos);
          $("#<%=txtDataSource.ClientID %>").val(data.node.attributes.Datasource);
          $("#<%=txtPuerto.ClientID%>").val(data.node.attributes.Puerto);
          $("#<%=txtUsuario.ClientID%>").val(data.node.attributes.Usuario);
          $("#<%=txtPassword.ClientID%>").val(data.node.attributes.Password);
          $("#<%=txtServidor.ClientID%>").val(data.node.attributes.Servidor);
          $("#<%=txtNombre.ClientID%>").val(data.node.attributes.NombreCadena);
          $("#<%=cmbTipoBD.ClientID%>").val(data.node.attributes.TipoConexion);
          return true;
        }
      </script>
    
      <div>
      
        <ext:Store ID="stTipoDB" runat="server">
          <Reader>
            <ext:ArrayReader>
              <Fields>
                <ext:RecordField Name="Valor" />
                <ext:RecordField Name="Texto" />
              </Fields>
            </ext:ArrayReader>
          </Reader>
        </ext:Store>
        <ext:Panel ID="Panel1" runat="server" AutoWidth="true" Height="500" Layout="Border">
          <Content>
            <ext:TreePanel ID="ArbolConexiones" runat="server" EnableDrag="true" DDGroup="tree2div"
              Region="West" Split="true" Margins="5 0 5 5" Width="200" Title="Conexiones Disponibles"
              AutoScroll="true" Collapsible="true">
              <Listeners>
                <StartDrag Handler="Ext.fly('drop-target').applyStyles({'background-color':'#f0f0f0'});" />
                <EndDrag Handler="Ext.fly('drop-target').applyStyles({'background-color':'white'});" />
              </Listeners>
              <Buttons>
                <ext:Button runat="server" ID="btnNuevaConect" Icon="DatabaseAdd" Text="Nueva Conexion">
                  <DirectEvents>
                    <Click OnEvent="btnNuevaConect_Click">
                      <EventMask ShowMask="true" Msg="Espere un Momento por favor..." MinDelay="1000" />
                    </Click>
                  </DirectEvents>
                </ext:Button>
              </Buttons>
            </ext:TreePanel>
            <ext:Panel ID="Panel2" runat="server" Title="Target" Region="Center" Margins="5 5 5 0">
              <Content>
                <div id="drop-target" style="border: 1px silver solid; margin: 20px; padding: 8px;
                  height: 100%">
                  <ext:FormPanel ID="frm" runat="server" Title="Configuración de Base de Datos" MonitorPoll="500"
                    MonitorValid="true" Region="Center" Padding="5" AutoWidth="true" AutoHeight="true"
                    ButtonAlign="Right" Layout="FormLayout">
                    <Items>
                      <ext:TextField ID="txtNombre" runat="server" FieldLabel="Nombre de Conexion" AllowBlank="false" 
                        AnchorHorizontal="100%" />
                      <ext:TextField ID="txtServidor" runat="server" FieldLabel="Servidor" AnchorHorizontal="100%" />
                      <ext:TextField ID="txtBaseDatos" runat="server" FieldLabel="Base de Datos" AnchorHorizontal="100%" />
                      <ext:TextField ID="txtDataSource" runat="server" FieldLabel="Data Source" AnchorHorizontal="100%" />
                      <ext:TextField ID="txtPuerto" runat="server" FieldLabel="Puerto" AnchorHorizontal="100%" />
                      <ext:TextField ID="txtUsuario" runat="server" FieldLabel="Usuario" AnchorHorizontal="100%" />
                      <ext:TextField ID="txtPassword" runat="server" FieldLabel="Password" InputType="Password"
                        AnchorHorizontal="100%" />
                      <ext:ComboBox ID="cmbTipoBD" runat="server" StoreID="stTipoDB" Editable="false" DisplayField="Texto"
                        ValueField="Valor" TypeAhead="true" Mode="Local" ForceSelection="true" EmptyText="Seleccione un Motor de BD"
                        Resizable="true" SelectOnFocus="true" FieldLabel="Tipo de Base de Datos" />
                    </Items>
                    <Buttons>
                      <ext:Button ID="btnGuardar" runat="server" Text="Guardar" Icon="Disk">
                        <DirectEvents>
                          <Click OnEvent="btnGuardar_OnClick">
                          </Click>
                        </DirectEvents>
                      </ext:Button>
                      <ext:Button ID="btnProbar" runat="server" Icon="DatabaseStart" Text="Probar Conexion">
                      <DirectEvents>
                      <Click OnEvent="btnProbar_Click">
                     <EventMask ShowMask="true" Msg="Realizando Prueba de Conexión" MinDelay="1000" /> 
                      </Click>
                      </DirectEvents>
                      </ext:Button>
                    </Buttons>
                  </ext:FormPanel>
                </div>
              </Content>
            </ext:Panel>
          </Content>
        </ext:Panel>
        <ext:DropTarget ID="DropTarget1" runat="server" Target="drop-target" Group="tree2div">
          <NotifyDrop Fn="notifyDrop" />
        </ext:DropTarget>
      </div>
    </asp:Content>
    ConfiguracionBD.aspx.cs
    
     public void btnGuardar_OnClick(object sender, EventArgs e)
      {
    
        if (!txtNombre.Text.Contains(" "))
        {
          Global glb = new Global();
          if (glb.Conexiones.ListaConexiones.First(a => a.NombreCadena == txtNombre.Text) != null)
          {
    
    
    
            MessageBox msg = new MessageBox();
            msg.Confirm("Message", "La conexion ya existe, ¿Desea guardar y sobreescribir los datos?", new MessageBoxButtonsConfig
            {
              Yes = new MessageBoxButtonConfig
              {
                Text = "Si, Guardar.",
                Handler = "Prixmasol.OKGuardar()"
              },
              No = new MessageBoxButtonConfig
              {
                Text = "No, no estoy seguro"
              }
            });
            msg.Show();
            
    
          }
          else
          {
            OKGuardar();
          }
    
        }
        else
        {
          throw new Exception("El Nombre no puede tener espacios");
        }
      }
      
      [DirectMethod(Namespace="Prixmasol")]
      private void OKGuardar()
      {
        Prixmasol.Utils.Global glb = new Prixmasol.Utils.Global();
        Prixmasol.Utils.NodoCadenaServidor nd = new Prixmasol.Utils.NodoCadenaServidor();
        nd.NombreCadena = this.txtNombre.Text;
        nd.BaseDatos = this.txtBaseDatos.Text;
        nd.DataSource = this.txtDataSource.Text;
        nd.Puerto = this.txtPuerto.Text;
        nd.Servidor = this.txtServidor.Text;
        nd.TipoConexion = (Prixmasol.Utils.TipoBaseDatos)Enum.Parse(typeof(Prixmasol.Utils.TipoBaseDatos), this.cmbTipoBD.SelectedItem.Value);
        nd.Usuario = this.txtUsuario.Text;
        nd.Password = this.txtPassword.Text;
        glb.Conexiones.ListaConexiones.Add(nd);
        glb.Conexiones.GrabarArchivoConexiones();
        Response.Redirect(Request.Url.AbsoluteUri);
      }
    
      
    }
  2. #2
    DirectMethod must be public
  3. #3
    Quote Originally Posted by Vladimir View Post
    DirectMethod must be public
    thanks very much

Similar Threads

  1. Replies: 2
    Last Post: May 08, 2012, 3:34 PM
  2. Replies: 5
    Last Post: Mar 16, 2012, 2:47 PM
  3. Replies: 3
    Last Post: Feb 14, 2011, 1:36 PM
  4. Microsoft JScript runtime error: 'Ext' is undefined
    By Satyanarayana murthy in forum Open Discussions
    Replies: 11
    Last Post: Mar 31, 2010, 11:54 AM
  5. Replies: 7
    Last Post: Mar 11, 2010, 3:01 PM

Posting Permissions