Hello,
I face a issue with pagesize change event of RadGrid. This event is called two times when a user clicks on "Change" link.
I have set AllowPaging="True", AllowCustomPaging="True", PagerStyle-Mode="NextPrevNumericAndAdvanced"
properties of Radgrid related to paging.
In code I have following events...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
BindGrid()
End If
End Sub
Private Sub BindGrid()
'''' grid binding code here using datasource as datatable
dt = .....
If dt.Rows.Count > 0 Then
rGridSubscriptions.VirtualItemCount = dt.Rows(0).Item("total_rows")
Else
rGridSubscriptions.VirtualItemCount = 0
End If
End Sub
Private Sub rGridSubscriptions_PageSizeChanged(ByVal source As Object, ByVal e As Telerik.Web.UI.GridPageSizeChangedEventArgs) Handles rGridSubscriptions.PageSizeChanged
ViewState("maxRows") = e.NewPageSize
BindGrid()
End Sub
This PageSizeChanged is called twice when "Change" link is clicked and hence Bindgrid is called twice. I am using Telerik's Q2 2008 version.
Please if anyone can solve this issue it would be of greate help.
Thanks in advance
Sups
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxManager1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"MainNav"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"BodyContent"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<!-- Main Menu -->
<
div
class
=
"menu-wrapper"
style
=
"border-top: solid 40px #b1ddab;"
>
<
telerik:RadMenu
runat
=
"server"
ID
=
"MainNav"
EnableEmbeddedSkins
=
"false"
OnItemClick
=
"MainNav_OnItemClick"
CssClass
=
"desktop_nav_menu"
>
<
Items
>
<
telerik:RadMenuItem
Text="<%$ Resources:Main, MasterHome %>" />
<
telerik:RadMenuItem
Text="<%$ Resources:Main, MasterTraining %>" />
<
telerik:RadMenuItem
Text="<%$ Resources:Main, MasterSupport %>" />
</
Items
>
</
telerik:RadMenu
>
</
div
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
></
telerik:RadAjaxLoadingPanel
>
<
asp:PlaceHolder
ID
=
"BodyContent"
runat
=
"server"
>
</
asp:PlaceHolder
>
protected
void
Page_Load(
object
sender, EventArgs e)
{
this
.LoadView();
}
private
string
LoadedControlName
{
get
{
return
(
this
.ViewState[ViewStateKeys.LoadedControlName]
as
string
) ?? defaultContentControl;
}
set
{
this
.ViewState[ViewStateKeys.LoadedControlName] = value;
}
}
private
void
LoadView()
{
this
.LoadView(
this
.LoadedControlName);
}
private
void
LoadView(
string
viewName)
{
Control control =
this
.LoadControl(
string
.Concat(SitePaths.Views, viewName));
control.ID = viewName;
this
.LoadedControlName = viewName;
this
.BodyContent.Controls.Clear();
this
.BodyContent.Controls.Add(control);
}
public
void
MainNav_OnItemClick(
object
sender, RadMenuEventArgs e)
{
RadMenuItem currentItem = e.Item;
string
currentItemText = currentItem.Text;
string
controlPath =
string
.Empty;
switch
(currentItemText)
{
case
(
"Home"
):
controlPath = DefaultViews.Home;
break
;
case
(
"Training"
):
controlPath = DefaultViews.Training;
break
;
case
(
"Support"
):
controlPath = DefaultViews.Support;
break
;
default
:
break
;
}
if
(!String.IsNullOrEmpty(controlPath))
{
this
.LoadView(controlPath);
}
}
public
class
SitePaths
{
public
const
string
Views =
"~/Views/"
;
}
public
class
ViewStateKeys
{
public
const
string
LoadedControlName =
"LoadedControlName"
;
}
public
class
DefaultViews
{
public
const
string
Home =
"HomeView.ascx"
;
public
const
string
Training =
"TrainingView.ascx"
;
public
const
string
Support =
"SupportView.ascx"
;
}