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"
;
}
<
telerik:RadGrid
ID
=
"grdTicketHistory"
runat
=
"server"
Width
=
"100%"
AutoGenerateColumns
=
"false"
Skin
=
"Silk"
OnNeedDataSource
=
"grdTicketHistory_NeedDataSource"
OnItemDataBound
=
"grdTicketHistory_ItemDataBound"
OnPreRender
=
"grdTicketHistory_PreRender"
OnUpdateCommand
=
"grdTicketHistory_UpdateCommand"
OnDeleteCommand
=
"grdTicketHistory_DeleteCommand"
OnInsertCommand
=
"grdTicketHistory_InsertCommand"
>
<
MasterTableView
AllowSorting
=
"true"
Width
=
"100%"
EditMode
=
"PopUp"
AllowPaging
=
"true"
PageSize
=
"10"
AllowFilteringByColumn
=
"true"
DataKeyNames
=
"TicketLogID"
CommandItemDisplay
=
"Top"
ShowHeader
=
"false"
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
ItemStyle-Width
=
"30px"
></
telerik:GridEditCommandColumn
>
<
telerik:GridButtonColumn
UniqueName
=
"DeleteCommandColumn"
Text
=
"Delete"
CommandName
=
"Delete"
ButtonType
=
"ImageButton"
ConfirmText
=
"Are you sure you want to delete this record?"
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Delete"
/>
</
Columns
>
<
DetailItemTemplate
>
<
asp:Table
ID
=
"tblDetailItemTemplate"
runat
=
"server"
Width
=
"100%"
>
<
asp:TableRow
>
<
asp:TableRow
>
<
asp:TableCell
>
<
telerik:RadEditor
runat
=
"server"
ID
=
"txtLogText"
Enabled
=
"false"
EditModes
=
"Preview"
Height
=
"250px"
></
telerik:RadEditor
>
</
asp:TableCell
>
</
asp:TableRow
>
</
asp:Table
>
</
asp:TableCell
>
</
asp:TableRow
>
</
asp:Table
>
</
DetailItemTemplate
>
<
EditFormSettings
EditFormType
=
"Template"
>
<
PopUpSettings
Modal
=
"true"
Width
=
"1000px"
ZIndex
=
"3000"
/>
<
FormTemplate
>
<
table
id
=
"Table2"
cellspacing
=
"2"
cellpadding
=
"1"
width
=
"100%"
border
=
"0"
rules
=
"none"
style
=
"border-collapse: collapse;"
>
<
tr
>
<
td
colspan
=
"2"
>
<
telerik:RadEditor
runat
=
"server"
ID
=
"txtLogText"
TabIndex
=
"10"
ToolsFile
=
"~/xml/ToolsFile.xml"
NewLineMode
=
"Br"
OnClientLoad
=
"OnClientLoadRadEditor"
></
telerik:RadEditor
>
<
asp:CustomValidator
id
=
"valLogText"
runat
=
"server"
ControlToValidate
=
"txtLogText"
ErrorMessage
=
"- Text is mandatory"
ToolTip
=
"Text is mandatory"
> <
img
src
=
"/cmit/Images/warning.gif"
style
=
"border:0"
alt
=
""
/></
asp:CustomValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
align
=
"right"
style
=
"white-space:normal"
colspan
=
"2"
>
<
asp:Button
ID
=
"btnUpdate"
TabIndex
=
"11"
Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'></
asp:Button
>
<
asp:Button
ID
=
"btnCancel"
TabIndex
=
"12"
Text
=
"Cancel"
runat
=
"server"
CausesValidation
=
"False"
CommandName
=
"Cancel"
></
asp:Button
>
</
td
>
</
tr
>
</
table
>
</
FormTemplate
>
<
EditColumn
ButtonType
=
"ImageButton"
/>
</
EditFormSettings
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
script
type
=
"text/javascript"
>
function ShowWindow() {
var oWnd = window.radopen('Window1.aspx', 'window1');
}
</
script
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
telerik:RadWindowManager
ID
=
"RadWindowManager1"
runat
=
"server"
>
</
telerik:RadWindowManager
>
...........
...
else
{
Session["fatherMessageID"] = id;
string script = "<
script
language
=
'javascript'
type
=
'text/javascript'
>Sys.Application.add_load(ShowWindow);</
script
>";
ClientScript.RegisterStartupScript(this.GetType(), "showWindow", script);
}
<
script
type
=
"text/javascript"
>
function GetRadWindow() {
var oWnd = null;
if (window.radWindow) oWnd = window.radWindow;
else if (window.frameElement.radWindow) oWnd = window.frameElement.radWindow;
return oWnd;
}
function CloseWindow() {
var oWnd = GetRadWindow();
oWnd.close()
}
</
script
>
string script = "<
script
language
=
'javascript'
type
=
'text/javascript'
>Sys.Application.add_load(CloseWindow);</
script
>";
ClientScript.RegisterStartupScript(this.GetType(), "CloseWindow", script);