Hi,
I have a radgrid bound to serverside datasource. It is configured for delayed loading and that works like a charm.I have column filters on the rad-grid. But
after coding for lazy loading the filter has stopped working. No request is triggered to the server when I type text in the filter textbox. I tried all the filter specific options on the grid and column. If I comment the 'lazy loading' code the filters start working again. I am guessing the control IDs getting changed somewhere?
Code pasted below for your reference. Please help.
Thank You
ASPX Javascript
<
telerik:RadCodeBlock
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
var isInitialLoad = true;
function pageLoad(sender, args)
{
if (isInitialLoad)
{
isInitialLoad = false;
setTimeout(function()
{
var manager = $find('<%= ramManager.ClientID %>');
manager.ajaxRequest("BindTerms");
}, 1000);
}
}
</
script
>
</
telerik:RadCodeBlock
>
ASPX Grid
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
asp:ScriptManager
ID
=
"ScriptManager1"
runat
=
"server"
></
asp:ScriptManager
>
<
telerik:RadAjaxManager
runat
=
"server"
ID
=
"ramManager"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"ramManager"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanel1"
LoadingPanelID
=
"pnlLoading"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxPanel1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanel1"
LoadingPanelID
=
"pnlLoading"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnAddOpportunity"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanel1"
LoadingPanelID
=
"pnlLoading"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"msgPlaceHolder"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"lnkAddNew"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanel1"
LoadingPanelID
=
"pnlLoading"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"pnlLoading"
runat
=
"server"
meta:resourcekey
=
"pnlLoadingResource1"
></
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxPanel
runat
=
"server"
ID
=
"RadAjaxPanel1"
LoadingPanelID
=
"pnlLoading"
>
<
div
id
=
"popup"
>
<
div
id
=
"msgPlaceHolder"
runat
=
"server"
/>
<
table
style
=
"width: 100%"
>
<
tr
>
<
td
>
<
div
>
<
telerik:RadGrid
runat
=
"server"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"grdPTerms_NeedDataSource"
AllowFilteringByColumn
=
"true"
ID
=
"grdPTerms"
>
<
ClientSettings
>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
SaveScrollPosition
=
"true"
ScrollHeight
=
"290px"
></
Scrolling
>
</
ClientSettings
>
<
MasterTableView
>
<
ColumnGroups
>
<
telerik:GridColumnGroup
HeaderText
=
"AMAR"
Name
=
"Amar"
HeaderStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridColumnGroup
>
</
ColumnGroups
>
<
ColumnGroups
>
<
telerik:GridColumnGroup
HeaderText
=
"My Report License"
Name
=
"MYReportLicense"
HeaderStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridColumnGroup
>
</
ColumnGroups
>
<
ColumnGroups
>
<
telerik:GridColumnGroup
HeaderText
=
"Demo Pack"
Name
=
"DemoPack"
HeaderStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridColumnGroup
>
</
ColumnGroups
>
<
ColumnGroups
>
<
telerik:GridColumnGroup
HeaderText
=
"POC Pack"
Name
=
"POCPack"
HeaderStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridColumnGroup
>
</
ColumnGroups
>
<
ColumnGroups
>
<
telerik:GridColumnGroup
HeaderText
=
"Quick Service"
Name
=
"QuickService"
HeaderStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridColumnGroup
>
</
ColumnGroups
>
<
ColumnGroups
>
<
telerik:GridColumnGroup
HeaderText
=
"VirtDB License"
Name
=
"VirtDB"
HeaderStyle-HorizontalAlign
=
"Center"
>
</
telerik:GridColumnGroup
>
</
ColumnGroups
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"i_id"
UniqueName
=
"i_id"
Display
=
"false"
HeaderText
=
"ID"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"i_partner_id"
UniqueName
=
"i_partner_id"
Display
=
"false"
HeaderText
=
"ID"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"s_partner"
AllowFiltering
=
"true"
CurrentFilterFunction
=
"Contains"
FilterDelay
=
"1000"
HeaderText
=
"Name"
HeaderStyle-Width
=
"110px"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Advance"
ColumnGroupName
=
"Amar"
AllowFiltering
=
"false"
UniqueName
=
"ColMyAmarAdvance"
HeaderStyle-Width
=
"55px"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
't_am_poapproved'
runat
=
"server"
MaxLength
=
"2"
NumberFormat-DecimalDigits
=
"0"
Text='<%# Bind("am_poapproved")%>'
Width="40px"
EnabledStyle-HorizontalAlign="Right">
</
telerik:RadNumericTextBox
>
<
span
>%</
span
>
<
span
style
=
"color: red; font-size: 12px; font-weight: bold"
>*</
span
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"License Approval"
ColumnGroupName
=
"Amar"
AllowFiltering
=
"false"
UniqueName
=
"ColAmarFinal"
HeaderStyle-Width
=
"50px"
>
<
ItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"t_am_final"
runat
=
"server"
MaxLength
=
"2"
NumberFormat-DecimalDigits
=
"0"
Text='<%# Bind("am_final")%>'
Width="40px"
EnabledStyle-HorizontalAlign="Right">
</
telerik:RadNumericTextBox
>
<
span
>%</
span
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
</
telerik:RadGrid
>
</
div
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
telerik:RadAjaxPanel
>
</
form
>
</
body
>
Irrelevant code is removed.
Code Behind
protected
void
Page_Load(
object
sender, EventArgs e)
{
ramManager.AjaxRequest +=
new
RadAjaxControl.AjaxRequestDelegate(RadAjaxManager1_AjaxRequest);
}
void
RadAjaxManager1_AjaxRequest(
object
sender, AjaxRequestEventArgs e)
{
if
(e.Argument ==
"BindTerms"
)
{
grdPTerms.Rebind();
}
}
protected
void
grdPTerms_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
if
(Page.IsPostBack)
{
List<Partner> pList = (List<Partner>)Application[
"QRPartner"
];
SrvPaymentTerm srvPT =
new
SrvPaymentTerm();
DataTable dt = srvPT.Select(pList);
grdPTerms.DataSource = dt;
}
else
{
DataTable dt =
new
DataTable();
grdPTerms.DataSource = dt;
}
}