Hello,
When I create a Web Server Control with RadAjaxManager, RadAjaxLoadingPanel and RadGrid inside, all working properly, but if for example I change page on RadGrid, Ajax works fine, but on second time I change the page, Ajax stops working, and the third time I change page, Ajax works fine again...
I don't understand why this append
My code here...
using System; |
using System.Collections.Generic; |
using System.ComponentModel; |
using System.Linq; |
using System.Text; |
using System.Web; |
using System.Web.UI; |
using System.Web.UI.WebControls; |
using Telerik.Web.UI; |
using System.IO; |
using System.Reflection; |
using darwin.sadj.shared.core; |
[assembly: WebResource("darwin.sadj.shared.ui.etiqueta.Imagens.delete.gif", "image/gif")] |
namespace darwin.sadj.shared.ui.etiqueta |
{ |
[ToolboxData("<{0}:ListEtiqueta runat=server></{0}:ListEtiqueta>")] |
public class ListEtiqueta : WebControl |
{ |
private RadGrid gridEtiquetas { get; set; } |
private RadAjaxManager RadAjaxManager1 { get; set; } |
private RadAjaxLoadingPanel RadAjaxLoadingPanel1 { get; set; } |
protected override void OnInit(EventArgs e) |
{ |
this.Controls.Clear(); |
RadAjaxLoadingPanel1 = new RadAjaxLoadingPanel(); |
RadAjaxLoadingPanel1.ID = this.ID + "_RadAjaxLoadingPanel"; |
this.Controls.Add(RadAjaxLoadingPanel1); |
RadAjaxManager1 = new RadAjaxManager(); |
RadAjaxManager1.ID = this.ID + "_RadAjaxManager"; |
this.Controls.Add(RadAjaxManager1); |
gridEtiquetas = new RadGrid(); |
gridEtiquetas.ID = this.ID + "_gridEtiquetas"; |
gridEtiquetas.NeedDataSource += new GridNeedDataSourceEventHandler(gridEtiquetas_NeedDataSource); |
gridEtiquetas.ItemCommand += new GridCommandEventHandler(gridEtiquetas_ItemCommand); |
this.Controls.Add(gridEtiquetas); |
base.OnInit(e); |
} |
protected override void RenderContents(HtmlTextWriter output) |
{ |
if (this.Visible == true) |
{ |
this.RadAjaxLoadingPanel1.RenderControl(output); |
this.RadAjaxManager1.RenderControl(output); |
this.gridEtiquetas.RenderControl(output); |
} |
} |
protected override void OnLoad(EventArgs e) |
{ |
if (!this.Page.IsPostBack) |
{ |
GridBoundColumn colunaID = new GridBoundColumn(); |
gridEtiquetas.Columns.Add(colunaID); |
colunaID.DataField = "Id"; |
colunaID.UniqueName = "Id"; |
colunaID.HeaderText = "Id"; |
GridBoundColumn colunaDescricao = new GridBoundColumn(); |
gridEtiquetas.Columns.Add(colunaDescricao); |
colunaDescricao.DataField = "Descricao"; |
colunaDescricao.UniqueName = "Descricao"; |
colunaDescricao.HeaderText = "Descrição"; |
GridButtonColumn colunaDelete = new GridButtonColumn(); |
gridEtiquetas.Columns.Add(colunaDelete); |
colunaDelete.ButtonType = GridButtonColumnType.ImageButton; |
colunaDelete.CommandName = "Delete"; |
colunaDelete.ConfirmDialogType = GridConfirmDialogType.RadWindow; |
colunaDelete.ConfirmText = "Deseja apagar este registo?"; |
colunaDelete.ConfirmTitle = "Confirmação"; |
colunaDelete.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "darwin.sadj.shared.ui.etiqueta.Imagens.delete.gif"); |
colunaDelete.Text = "Apagar"; |
colunaDelete.UniqueName = "colunaDelete"; |
colunaDelete.ItemStyle.Width = Unit.Pixel(22); |
} |
gridEtiquetas.AutoGenerateColumns = false; |
gridEtiquetas.GridLines = GridLines.None; |
gridEtiquetas.MasterTableView.AllowCustomPaging = true; |
gridEtiquetas.MasterTableView.AllowPaging = true; |
gridEtiquetas.MasterTableView.PagerStyle.Mode = GridPagerMode.NextPrev; |
gridEtiquetas.MasterTableView.DataKeyNames = new string[] { "Id" }; |
RadAjaxManager1.AjaxSettings.AddAjaxSetting(gridEtiquetas, gridEtiquetas, RadAjaxLoadingPanel1); |
base.OnLoad(e); |
} |
protected void gridEtiquetas_NeedDataSource(object source, GridNeedDataSourceEventArgs e) |
{ |
EtiquetaController controller = new EtiquetaController(); |
int TotalRecords = 0; |
((RadGrid)source).DataSource = controller.getListEtiqueta(((RadGrid)source).MasterTableView.CurrentPageIndex, ((RadGrid)source).MasterTableView.PageSize, out TotalRecords); |
((RadGrid)source).MasterTableView.VirtualItemCount = TotalRecords; |
} |
protected void gridEtiquetas_ItemCommand(object source, GridCommandEventArgs e) |
{ |
if (e.CommandName == "Delete") |
{ |
EtiquetaController controller = new EtiquetaController(); |
controller.deleteEtiqueta(Convert.ToInt64(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["Id"])); |
} |
} |
} |
} |