Problem calling methods

  1. #1

    Problem calling methods



    I'm really new at this, so I can't understand how it works, I paste a piece of my code:

    <ext:Toolbar ID="Toolbar1" runat="server">
                    <Items>
                        <ext:ToolbarButton ID="tbBtnSave" runat="server" Text="Save" Icon="Disk">
                            <AjaxEvents>
                                <Click OnEvent="btnSave_Click">
                                </Click>
                            </AjaxEvents>
    ...
    And the codebehind is this:

    protected void btnSave_Click(object sender, EventArgs e)
            {
                try
                {
                    ///SaveData
                    ...
                    ClearControls();
                    LoadGrid();
                }
                catch (Exception exc)
                {
                }
            }
    
    
    private void ClearControls()
            {
                /// Clears controls
            }
    
    
    private void LoadGrid()
            {
                /// Loads the grid from the database
            }
    The code executes correctly, but the methods LoadGrid and ClearControls are not executing, well they are executing, I checked it with a breakpoint, but the page remains with the old data of the grid and the controls with data. Maybe I'm doing something wrong. What can I do? How am I suposed to call methods from the ajax method?

    P.S. Can you please tell me where I can get a tutorial step by step for the controls ?
  2. #2

    RE: Problem calling methods

    Hi Argons,

    I think you just need to change the EventArgs to AjaxEventArgs on your btnSave_Click event handler.


    Hope this helps.


    Geoffrey McGill
    Founder
  3. #3

    RE: Problem calling methods

    Hi,

    Please show full sample
  4. #4

    RE: Problem calling methods



    Changing EventArgs to AjaxEvents args didn't work, I paste my full page and the codebehind

    PAGE:
    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPageSistema.master" AutoEventWireup="true"
        CodeBehind="Cursos.aspx.cs" Inherits="EServicios.Educacion.FrontEnd.Web.Aplicacion.Academico.Cursos" %>
    
    
    <%@ Register Src="../../Controles/Temporalidad.ascx" TagName="Temporalidad" TagPrefix="uc1" %>
    <%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
        <ext:ScriptManager ID="ScriptManager1" runat="server" Theme="Gray">
        </ext:ScriptManager>
        <h1>
            Cursos
        </h1>
        <br />
        <asp:GridView ID="gridCursos" runat="server" CssClass="igoogle igoogle-night" AutoGenerateColumns="False"
            Caption="Listado de Cursos" DataKeyNames="IdCurso" OnSelectedIndexChanged="gridCursos_SelectedIndexChanged">
            <Columns>
                <asp:BoundField DataField="Nombre" HeaderText="Nombre del Curso"></asp:BoundField>
                <asp:CheckBoxField DataField="PermitirReservas" HeaderText="Reservas">
                    <ItemStyle Width="50px" />
                </asp:CheckBoxField>
                <asp:CheckBoxField DataField="Activo" HeaderText="Activo">
                    <ItemStyle Width="50px" />
                </asp:CheckBoxField>
                <asp:CommandField SelectText="Editar" ShowSelectButton="True">
                    <ItemStyle Width="50px" />
                </asp:CommandField>
                <asp:TemplateField>
                    <ItemStyle Width="100px" />
                    <ItemTemplate>
                        <asp:LinkButton ID="linkInstancia" runat="server">Crear Instancia</asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <EmptyDataTemplate>
                <asp:Image ID="Image1" runat="server" ImageUrl="~/Imagenes/page_white_delete.png" />&amp;nbsp;No
                existen cursos.
            </EmptyDataTemplate>
        </asp:GridView>
        <br />
        <ext:Panel ID="Panel1" runat="server" Title="Datos del curso">
            <Body>
                <ext:Toolbar ID="Toolbar1" runat="server">
                    <Items>
                        <ext:ToolbarButton ID="tbBtnNuevo" Text="Nuevo" Icon="PageAdd">
                            <ToolTips>
                                <ext:ToolTip runat="server" Html="Ayuda<br/>Nuevo registro" />
                            </ToolTips>
                        </ext:ToolbarButton>
                        <ext:ToolbarSeparator />
                        <ext:ToolbarButton ID="tbBtnGrabar" runat="server" Text="Grabar" Icon="Disk">
                            <AjaxEvents>
                                <Click OnEvent="btnGrabar_Click">
                                </Click>
                            </AjaxEvents>
                            <ToolTips>
                                <ext:ToolTip runat="server" Html="Ayuda<br/>Grabar los datos" />
                            </ToolTips>
                        </ext:ToolbarButton>
                        <ext:ToolbarButton ID="tbBtnCancelar" Text="Cancelar" Icon="Decline">
                            <ToolTips>
                                <ext:ToolTip ID="ToolTip2" runat="server" Html="Ayuda<br/>Cancelar operación" />
                            </ToolTips>
                        </ext:ToolbarButton>
                    </Items>
                </ext:Toolbar>
                <table align="center" class="tablaDatos">
                    <tr>
                        <td colspan="2">
                            <asp:HiddenField ID="hfIdCurso" runat="server" Value="0" />
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaTitulo" colspan="2">
                            Datos del Curso
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaLabel">
                            Nombre del Curso:
                        </td>
                        <td>
                            <asp:TextBox ID="txtNombre" runat="server" CssClass="requerido" Width="350px"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaLabel">
                            Duración:
                        </td>
                        <td>
                            <uc1:Temporalidad ID="Temporalidad1" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaLabel">
                            Número de Cuotas:
                        </td>
                        <td>
                            <ext:TextField ID="txtNroCuotas" runat="server" Regex="^[0-9]+$" RegexText="Solo números"
                                Width="50px">
                            </ext:TextField>
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaLabel">
                            Permitir Reservas por Internet:
                        </td>
                        <td>
                            <asp:CheckBox ID="chkPermitirReservas" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaLabel">
                            Pensum:
                        </td>
                        <td>
                            <asp:FileUpload ID="FileUpload1" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaLabel">
                            Activo:
                        </td>
                        <td>
                            <asp:CheckBox ID="chkActivo" runat="server" />
                        </td>
                    </tr>
                    <tr>
                        <td class="celdaLabel" colspan="2">
                            Tags:
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                        </td>
                    </tr>
                </table>
            </Body>
        </ext:Panel>
    </asp:Content>
    CODEBEHIND:
    public partial class Cursos : BasePage
        {
            #region " Métodos "
    
    
            /// <summary>
            /// Obtiene un curso de la interfaz
            /// </summary>
            /// <returns></returns>
            private Curso ObtenerCurso()
            {
                Curso curso = new Curso();
                curso.Nombre = txtNombre.Text;
                curso.DuracionIdcTemporalidad = Temporalidad1.IdcTemporalidad;
                curso.DuracionValor = Temporalidad1.Valor;
                if (string.IsNullOrEmpty(txtNroCuotas.Text))
                    curso.NroCuotas = 1;
                else
                    curso.NroCuotas = Byte.Parse(txtNroCuotas.Text);
                curso.PermitirReservas = chkPermitirReservas.Checked;
                curso.Activo = chkActivo.Checked;
                curso.IdInstitucion = CustomIdentity.IdUser;
                curso.IdCurso = int.Parse(hfIdCurso.Value);
                if (hfIdCurso.Value != "0")
                    curso.EstadoBD = Framework.Common.EstadoEntidad.Modificado;
    
    
                return curso;
            }
    
    
            /// <summary>
            /// Carga un curso en la interfaz
            /// </summary>
            /// <param name="curso">Curso a cargar</param>
            private void CargarCurso(Curso curso)
            {
                hfIdCurso.Value = curso.IdCurso.ToString();
                txtNombre.Text = curso.Nombre;
                Temporalidad1.IdcTemporalidad = curso.DuracionIdcTemporalidad;
                Temporalidad1.Valor = curso.DuracionValor;
                txtNroCuotas.Text = curso.NroCuotas.ToString();
                chkPermitirReservas.Checked = curso.PermitirReservas;
                chkActivo.Checked = curso.Activo;
            }
    
    
            /// <summary>
            /// Limpia los controles de la interfaz
            /// </summary>
            private void LimpiarControles()
            {
                hfIdCurso.Value = "0";
                txtNombre.Text = "";
                txtNroCuotas.Text = "1";
                chkActivo.Checked = false;
                chkPermitirReservas.Checked = false;
                Temporalidad1.Limpiar();
            }
    
    
            /// <summary>
            /// Carga el grid con los datos de los cursos
            /// </summary>
            public void CargarGrid()
            {
                List<Filtro> filtros = new List<Filtro>();
                filtros.Add(new Filtro("IdInstitucion", Operacion.Igual, CustomIdentity.IdUser, TipoFiltro.And, TipoValor.Numero, System.Data.DbType.Int32));
                gridCursos.DataSource = Helper.ObtenerProxyEducacion().CursoObtenerListadoFiltrado(filtros);
                gridCursos.DataBind();
            }
    
    
            #endregion
    
    
            #region " Eventos Página "
    
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    CargarGrid();
                    List<Filtro> filtros = new List<Filtro>();
                    filtros.Add(new Filtro("IdClasificadorComunTipo", Operacion.Igual, (int)TiposClasificadoresComunes.Tags, TipoFiltro.And, TipoValor.Numero, System.Data.DbType.Int32));
                    //chkListTags.DataSource = Helper.ObtenerProxyEducacion().ClasificadorComunObtenerListadoFiltrado(filtros).Where(cc => cc.IdInstitucion == CustomIdentity.IdUser || cc.IdInstitucion == 0);
                    //chkListTags.DataBind();
                }
            }
    
    
            #endregion
    
    
            protected void btnGrabar_Click(object sender, EventArgs e)
            {
                if (string.IsNullOrEmpty(txtNombre.Text))
                {
                    //Mensaje1.Show("No puede dejar los campos requeridos en blanco.", Controles_Mensaje.IconoMensaje.Warning);
                    return;
                }
    
    
                try
                {
                    Curso nuevoCurso = ObtenerCurso();
                    Helper.ObtenerProxyEducacion().CursoActualizarBDSimple(nuevoCurso);
                    MostrarMensaje("Grabar", "La información se grabó correctamente", MessageBox.Icon.INFO);
                    CargarGrid();
                    LimpiarControles();
                }
                catch (Exception exc)
                {
                    //Mensaje1.Show("Ocurrió un error al tratar de grabar la información." + exc.Message, Controles_Mensaje.IconoMensaje.Error);
                }
            }
    
    
            protected void gridCursos_SelectedIndexChanged(object sender, EventArgs e)
            {
                Curso curso = Helper.ObtenerProxyEducacion().CursoObtener((int)gridCursos.SelectedValue);
                CargarCurso(curso);
            }
    
    
            protected void btnCancelar_Click(object sender, ImageClickEventArgs e)
            {
                LimpiarControles();
            }
    
    
            protected void btnNuevo_Click(object sender, ImageClickEventArgs e)
            {
                LimpiarControles();
            }
        }
    The problem is when I press tbBtnGrabar, the record is saved to the database and after that I need to refresh the datagrid and clear the controls, but those 2 methods are not working.
  5. #5

    RE: Problem calling methods

    Hi,

    You can't update none-Coolite controls during AjaxEvent
  6. #6

    RE: Problem calling methods

    Thanks, please mark this as Solved

Similar Threads

  1. Problem Calling DirectEvent
    By camazorro in forum 1.x Help
    Replies: 1
    Last Post: Mar 20, 2012, 3:26 PM
  2. [CLOSED] Problem when calling reconfigure for gridpanel using borderlayout
    By Pablo_Azevedo in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Aug 05, 2011, 1:26 PM
  3. Replies: 5
    Last Post: May 05, 2011, 7:05 PM
  4. Replies: 1
    Last Post: Sep 29, 2010, 2:12 AM
  5. [CLOSED] error when calling ajax methods or taskmanager
    By LeeTheGreek in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Nov 04, 2009, 7:08 AM

Posting Permissions