Hello good people,
I'm having a problem with a ajaxfied grid on ASP.NET, I'm able to populate the grid first time on Page Load (without ajax), and then again using the form to filter the records displayed on page (this WITH ajax), the grid IS populated, but then all controls on page stops responding.
Target framework .net 4.5
Any advice will help.
Code is posted here below.
Thanks in advance!
And the CS File
I'm having a problem with a ajaxfied grid on ASP.NET, I'm able to populate the grid first time on Page Load (without ajax), and then again using the form to filter the records displayed on page (this WITH ajax), the grid IS populated, but then all controls on page stops responding.
Target framework .net 4.5
Any advice will help.
Code is posted here below.
Thanks in advance!
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DashboardContabilidade.aspx.cs" Inherits="GaragemMaintenance.DashboardContabilidade" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%--<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>--%>
<!DOCTYPE html>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
id
=
"Head1"
runat
=
"server"
>
<
title
>Dashboard Estapar</
title
>
<
script
src
=
"Scripts/jquery-2.0.3.js"
></
script
>
<%--<
script
src
=
"Scripts/jquery-ui-1.10.3.js"
></
script
>--%>
<%--<
link
href
=
"Content/themes/base/jquery-ui.css"
rel
=
"stylesheet"
type
=
"text/css"
/>--%>
<%--<
link
type
=
"text/css"
rel
=
"stylesheet"
href
=
"Content/themes/css/style.css"
/>--%>
<%--<
link
rel
=
'stylesheet'
type
=
'text/css'
href
=
'Styles/StaticHeader.css'
/>--%>
<
style
>
.hidden
{
display: none;
}
body
{
/*background: #FFF;
color: #000;*/
font: normal normal 12px Verdana, Geneva, Arial, Helvetica, sans-serif;
/*margin: 10px;*/
padding: 0;
}
td
{
font: normal normal 9px Verdana, Geneva, Arial, Helvetica, sans-serif;
}
th
{
font: normal normal 9px Verdana, Geneva, Arial, Helvetica, sans-serif;
}
.ImageButtons
{
padding-top: 5px;
padding-right: 5px;
}
</
style
>
<
script
>
function onRequestStart(sender, args) {
if (args.get_eventTarget().indexOf("Export") >= 0) {
args.set_enableAjax(false);
}
}
</
script
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
style
=
"background-color: white;"
>
<
input
id
=
"scrollPos"
runat
=
"server"
type
=
"hidden"
value
=
"0"
/>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
<
Services
>
<
asp:ServiceReference
Path
=
"DataManager.svc"
/>
</
Services
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
ClientEvents
OnRequestStart
=
"onRequestStart"
/>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"radGrdContabil_GridHeader"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"pnlGrid"
LoadingPanelID
=
"loadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"radGrdContabil"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"radGrdContabil"
LoadingPanelID
=
"loadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnFiltrar"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"pnlMain"
LoadingPanelID
=
"loadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnExportExcel"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"btnExportExcel"
LoadingPanelID
=
"loadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnExportPdf"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"btnExportPdf"
LoadingPanelID
=
"loadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnExportWord"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"btnExportWord"
LoadingPanelID
=
"loadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnExportCsv"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"btnExportCsv"
LoadingPanelID
=
"loadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"loadingPanel"
runat
=
"server"
Height
=
"75px"
Width
=
"75px"
Transparency
=
"25"
>
<
img
alt
=
"Carregando..."
style
=
"border:0;"
src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>' />
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadFormDecorator
ID
=
"RadFormDecorator1"
DecoratedControls
=
"All"
runat
=
"server"
Skin
=
"Office2010Silver"
EnableRoundedCorners
=
"true"
/>
<
telerik:RadNotification
ID
=
"radNotification"
runat
=
"server"
EnableRoundedCorners
=
"true"
EnableShadow
=
"true"
Position
=
"Center"
Title
=
"Aviso"
Width
=
"400"
Height
=
"150"
Text
=
"A execução desta consulta sem filtro retorna mais linhas do que o ERP consegue exportar, por favor selecione algum outro filtro."
>
</
telerik:RadNotification
>
<
telerik:RadNotification
ID
=
"radNotificationData"
runat
=
"server"
EnableRoundedCorners
=
"true"
Position
=
"Center"
Title
=
"Aviso"
Width
=
"400"
Height
=
"150"
EnableShadow
=
"true"
Text
=
"A execução desta consulta exige ao menos um filtro de data."
>
</
telerik:RadNotification
>
<
div
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text
=
"DashBoard Contabilidade"
Font-Bold
=
"True"
Font-Size
=
"20pt"
></
asp:Label
>
</
div
>
<
telerik:RadAjaxPanel
runat
=
"server"
ID
=
"pnlMain"
>
<
div
>
<
table
style
=
"width: 1100px"
>
<
tr
>
<
td
>
<
table
class
=
""
style
=
"width: 700px"
>
<
tr
>
<
td
colspan
=
"5"
>
<
p
></
p
>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"4"
>
<
asp:Label
ID
=
"Label5"
runat
=
"server"
Text
=
"Datas:"
></
asp:Label
>
</
td
>
<
td
rowspan
=
"8"
>
<
table
style
=
"width: 150px; position: relative"
>
<
tr
>
<
td
style
=
"width: 50px"
>
<
asp:ImageButton
runat
=
"server"
ID
=
"btnExportExcel"
OnClick
=
"btnExportExcel_Click"
CssClass
=
"ImageButtons"
ImageUrl
=
"~/Images/file-extension-xls-html-icon.png"
/>
</
td
>
<
td
style
=
"width: 50px"
>
<
asp:ImageButton
runat
=
"server"
ID
=
"btnExportPdf"
OnClick
=
"btnExportPdf_Click"
CssClass
=
"ImageButtons"
ImageUrl
=
"~/Images/file-extension-pdf-icon.png"
/>
</
td
>
<
td
style
=
"width: 50px"
>
<
asp:ImageButton
runat
=
"server"
ID
=
"btnExportWord"
OnClick
=
"btnExportWord_Click"
CssClass
=
"ImageButtons"
ImageUrl
=
"~/Images/file-extension-doc-icon.png"
/>
</
td
>
<
td
style
=
"width: 50px"
>
<
asp:ImageButton
runat
=
"server"
ID
=
"btnExportCsv"
OnClick
=
"btnExportCsv_Click"
CssClass
=
"ImageButtons"
ImageUrl
=
"~/Images/file-extension-csv-icon.png"
/>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label4"
runat
=
"server"
Text
=
"Mês De:"
></
asp:Label
>
</
td
>
<
td
>
<
telerik:RadMonthYearPicker
ID
=
"mesDe"
runat
=
"server"
Culture
=
"pt-BR"
DateInput-Culture
=
"pt-BR"
DateInput-DateFormat
=
"MM/yyyy"
Skin
=
"Office2010Silver"
MonthYearNavigationSettings-TodayButtonCaption
=
"Hoje"
Width
=
"95px"
/>
</
td
>
<
td
>
<
asp:Label
ID
=
"Label6"
runat
=
"server"
Text
=
"Mês Até:"
></
asp:Label
></
td
>
<
td
>
<
telerik:RadMonthYearPicker
ID
=
"mesAte"
runat
=
"server"
Culture
=
"pt-BR"
DateInput-Culture
=
"pt-BR"
DateInput-DateFormat
=
"MM/yyyy"
Skin
=
"Office2010Silver"
MonthYearNavigationSettings-TodayButtonCaption
=
"Hoje"
Width
=
"95px"
/>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"4"
>
<
asp:Label
ID
=
"Label9"
runat
=
"server"
Text
=
"Contas:"
></
asp:Label
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label7"
runat
=
"server"
Text
=
"De:"
></
asp:Label
>
</
td
>
<
td
>
<
asp:DropDownList
ID
=
"ddlContasDe"
runat
=
"server"
Font-Size
=
"9px"
Font-Names
=
"Verdana"
DataTextField
=
"Descricao"
DataValueField
=
"CT1_CONTA"
Width
=
"300px"
/>
</
td
>
<
td
>
<
asp:Label
ID
=
"Label8"
runat
=
"server"
Text
=
"Até:"
></
asp:Label
></
td
>
<
td
>
<
asp:DropDownList
ID
=
"ddlContasAte"
runat
=
"server"
Font-Size
=
"9px"
Font-Names
=
"Verdana"
DataTextField
=
"Descricao"
DataValueField
=
"CT1_CONTA"
Width
=
"300px"
/>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"4"
>
<
asp:Label
ID
=
"Label13"
runat
=
"server"
Text
=
"Centro de Custo:"
></
asp:Label
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label12"
runat
=
"server"
Text
=
"De:"
></
asp:Label
>
</
td
>
<
td
>
<
asp:DropDownList
ID
=
"ddlCentrosDe"
runat
=
"server"
Font-Size
=
"9px"
Font-Names
=
"Verdana"
DataTextField
=
"Descricao"
DataValueField
=
"CTT_CUSTO"
Width
=
"300px"
/>
</
td
>
<
td
>
<
asp:Label
ID
=
"Label2"
runat
=
"server"
Text
=
"Até:"
></
asp:Label
>
</
td
>
<
td
>
<
asp:DropDownList
ID
=
"ddlCentrosAte"
runat
=
"server"
Font-Size
=
"9px"
Font-Names
=
"Verdana"
DataTextField
=
"Descricao"
DataValueField
=
"CTT_CUSTO"
Width
=
"300px"
/>
</
td
>
</
tr
>
<
tr
>
<
td
style
=
"width: 50px"
></
td
>
<
td
>
<
asp:Button
ID
=
"btnFiltrar"
runat
=
"server"
Text
=
"Filtrar"
OnClick
=
"btnFiltrar_Click"
/>
</
td
>
<
td
>
<
asp:Button
ID
=
"btnLimpar"
runat
=
"server"
Text
=
"Limpar"
OnClick
=
"btnLimpar_Click"
/>
</
td
>
<
td
>
<
asp:Button
ID
=
"btnMenu"
runat
=
"server"
Text
=
"Menu"
OnClick
=
"btnMenu_Click"
/>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
<
p
></
p
>
<
telerik:RadGrid
ID
=
"radGrdContabil"
runat
=
"server"
Skin
=
"Office2010Blue"
Width
=
"95%"
Height
=
"500px"
AutoGenerateColumns
=
"True"
CellSpacing
=
"0"
GridLines
=
"None"
AllowPaging
=
"true"
ShowHeader
=
"true"
Style
=
"margin-left: 20px"
ShowStatusBar
=
"true"
StatusBarSettings-LoadingText
=
"Carregando"
PageSize
=
"200"
OnSortCommand
=
"radGrdContabil_SortCommand"
OnPageIndexChanged
=
"radGrdContabil_PageIndexChanged"
OnPageSizeChanged
=
"radGrdContabil_PageSizeChanged"
>
<
ClientSettings
>
<
Scrolling
AllowScroll
=
"true"
SaveScrollPosition
=
"true"
UseStaticHeaders
=
"true"
/>
</
ClientSettings
>
<
MasterTableView
AutoGenerateColumns
=
"True"
EnableColumnsViewState
=
"false"
AllowSorting
=
"true"
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
></
PagerStyle
>
<
NoRecordsTemplate
>
<
div
>Não existem registros para os filtros selecionados!</
div
>
</
NoRecordsTemplate
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
telerik:RadAjaxPanel
>
</
div
>
</
form
>
</
body
>
</
html
>
And the CS File
using
System;
using
System.Collections.Generic;
using
System.Data;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
/* adicionar o namespace para o .NET carregar o método extendido AuthRedirect */
using
Estapar.Security;
using
Estapar.Security.Web;
namespace
GaragemMaintenance
{
public
partial
class
DashboardContabilidade : EstaparPage
{
public
bool
rebind =
false
;
private
const
string
sessionDataID =
"ContabilData"
;
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
{
mesDe.SelectedDate = DateTime.Now;
mesAte.SelectedDate = DateTime.Now;
ddlContasDe.DataSource = DAO.GetContasCorrentes();
ddlContasDe.DataBind();
ddlContasDe.Items.Insert(0,
new
ListItem(
"Selecione..."
,
""
));
ddlContasAte.DataSource = DAO.GetContasCorrentes();
ddlContasAte.DataBind();
ddlContasAte.Items.Insert(0,
new
ListItem(
"Selecione..."
,
""
));
ddlCentrosDe.DataSource = DAO.GetCentroCustos();
ddlCentrosDe.DataBind();
ddlCentrosDe.Items.Insert(0,
new
ListItem(
"Selecione..."
,
""
));
ddlCentrosAte.DataSource = DAO.GetCentroCustos();
ddlCentrosAte.DataBind();
ddlCentrosAte.Items.Insert(0,
new
ListItem(
"Selecione..."
,
""
));
FillGrid(
false
);
}
}
private
void
FillGrid(
bool
useCache)
{
DataTable res =
new
DataTable();
try
{
if
(!useCache || Session[sessionDataID] ==
null
)
{
res = DAO.GetDashboardDataContabilCC(mesDe.SelectedDate.Value, mesAte.SelectedDate.Value, ddlContasDe.SelectedValue, ddlContasAte.SelectedValue, ddlCentrosDe.SelectedValue, ddlCentrosAte.SelectedValue);
Session[sessionDataID] = res;
}
else
{
res = (DataTable)Session[sessionDataID];
}
radGrdContabil.DataSource = res;
radGrdContabil.ColumnCreated += radGrdContabil_ColumnCreated;
radGrdContabil.DataBind();
}
catch
(Exception Ex)
{
radNotification.Show(Ex.Message);
}
}
private
bool
NenhumaData()
{
return
((!mesDe.SelectedDate.HasValue) && (!mesAte.SelectedDate.HasValue));
}
protected
void
btnFiltrar_Click(
object
sender, EventArgs e)
{
radNotification.Visible =
false
;
if
(NenhumaData())
{
radNotificationData.Show();
return
;
}
FillGrid(
false
);
}
void
radGrdContabil_ColumnCreated(
object
sender, GridColumnCreatedEventArgs e)
{
var col = e.Column;
if
(col.UniqueName ==
"ExpandColumn"
)
e.Column.Visible =
false
;
if
(col.UniqueName ==
"CONTA"
)
{
col.HeaderStyle.Width =
new
Unit(
"60px"
);
col.HeaderText =
"Conta"
;
}
else
if
(col.UniqueName ==
"DESC_CONTA"
)
{
col.HeaderStyle.Width =
new
Unit(
"250px"
);
col.HeaderText =
"Nome Conta"
;
}
else
if
(col.UniqueName ==
"CENTRO_CUSTO"
)
{
col.HeaderStyle.Width =
new
Unit(
"60px"
);
col.HeaderText =
"Centro"
;
}
else
if
(col.UniqueName ==
"DESC_CC"
)
{
col.HeaderStyle.Width =
new
Unit(
"250px"
);
col.HeaderText =
"Nome Centro"
;
}
else
if
(col.UniqueName ==
"TOTAL"
)
{
col.HeaderStyle.Width =
new
Unit(
"60px"
);
col.HeaderText =
"Total"
;
}
else
if
(col.UniqueName.StartsWith(
"M"
))
{
col.HeaderStyle.Width =
new
Unit(
"60px"
);
col.HeaderText = col.UniqueName.Remove(0, 1).Insert(4,
"-"
);
}
}
protected
void
btnLimpar_Click(
object
sender, EventArgs e)
{
mesDe.SelectedDate = DateTime.Now;
mesAte.SelectedDate = DateTime.Now;
ddlContasDe.SelectedIndex = 0;
ddlContasAte.SelectedIndex = 0;
ddlCentrosDe.SelectedIndex = 0;
ddlCentrosAte.SelectedIndex = 0;
}
private
RadGrid PrepareGridToExport()
{
rebind =
true
;
FillGrid(
true
);
RadGrid gv = radGrdContabil;
gv.ExportSettings.OpenInNewWindow =
true
;
gv.ExportSettings.UseItemStyles =
true
;
gv.ExportSettings.ExportOnlyData =
true
;
gv.ExportSettings.FileName =
"ControleContabil"
;
gv.ExportSettings.IgnorePaging =
true
;
gv.MasterTableView.AllowPaging =
false
;
return
gv;
}
protected
void
btnExportExcel_Click(
object
sender, ImageClickEventArgs e)
{
RadGrid gv = PrepareGridToExport();
if
(gv !=
null
)
{
gv.ExportSettings.Excel.Format = GridExcelExportFormat.Biff;
gv.MasterTableView.ExportToExcel();
}
}
protected
void
btnExportPdf_Click(
object
sender, ImageClickEventArgs e)
{
RadGrid gv = PrepareGridToExport();
if
(gv !=
null
)
{
gv.ExportSettings.Pdf.FontType = Telerik.Web.Apoc.Render.Pdf.FontType.Subset;
gv.ExportSettings.Pdf.PaperSize = GridPaperSize.Letter;
gv.ExportSettings.Pdf.PageHeight = Unit.Parse(
"210mm"
);
gv.ExportSettings.Pdf.PageWidth = Unit.Parse(
"397mm"
);
gv.ExportSettings.Pdf.Title =
"DashBoard"
;
gv.MasterTableView.ExportToPdf();
}
}
protected
void
btnExportWord_Click(
object
sender, ImageClickEventArgs e)
{
RadGrid gv = PrepareGridToExport();
if
(gv !=
null
)
gv.MasterTableView.ExportToWord();
}
protected
void
btnExportCsv_Click(
object
sender, ImageClickEventArgs e)
{
RadGrid gv = PrepareGridToExport();
if
(gv !=
null
)
gv.MasterTableView.ExportToCSV();
}
protected
void
radGrdContabil_PageIndexChanged(
object
sender, GridPageChangedEventArgs e)
{
radGrdContabil.CurrentPageIndex = e.NewPageIndex;
FillGrid(
true
);
}
protected
void
radGrdContabil_SortCommand(
object
sender, GridSortCommandEventArgs e)
{
//radGrdContabil.MasterTableView.SortExpressions.Add(e.NewSortOrder);
FillGrid(
true
);
}
protected
void
radGrdContabil_PageSizeChanged(
object
sender, GridPageSizeChangedEventArgs e)
{
//radGrdContabil.PageSize = e.NewPageSize;
FillGrid(
true
);
}
protected
void
btnMenu_Click(
object
sender, EventArgs e)
{
Response.AuthRedirect(
"Menu.aspx"
,
this
.UsuarioLogado.UserName);
}
}
}