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" />&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.