Hi,
I've a problem with paging on my radgrid.
To fill the DataSource i'm using the event NeedDataSource, and it works.
If i have a lot of rows (>= 100) and I try to change the page, my pager after 11 pages return at the third page..
Why??
If I have under 100 rows the pager works correctly..
This is the block where i put my RadGrid..
01.
<
telerik:RadGrid
ID
=
"grdPorzioni"
runat
=
"server"
Skin
=
"Sunset"
AutoGenerateColumns
=
"false"
AllowPaging
=
"true"
Width
=
"100%"
AllowSorting
=
"false"
EnableViewState
=
"false"
BorderStyle
=
"None"
>
02.
<
PagerStyle
AlwaysVisible
=
"false"
Mode
=
"NumericPages"
ShowPagerText
=
"false"
/>
03.
<
MasterTableView
PageSize
=
"10"
AllowPaging
=
"true"
AllowSorting
=
"false"
ShowHeadersWhenNoRecords
=
"false"
TableLayout
=
"Fixed"
EnableViewState
=
"false"
BorderStyle
=
"Solid"
BorderWidth
=
"1"
>
04.
<
NoRecordsTemplate
>
05.
<
asp:Image
runat
=
"server"
ID
=
"imgNoRecord"
ImageUrl
=
"~/images/__banner.jpg"
Width
=
"60%"
/>
06.
<
br
/>
07.
<
asp:Label
runat
=
"server"
ForeColor
=
"Red"
Font-Bold
=
"true"
ID
=
"noRecord"
Text
=
"Non sono presenti delle porzioni per l'Unità Economica selezionata."
></
asp:Label
>
08.
</
NoRecordsTemplate
>
09.
<
Columns
>
10.
<
telerik:GridBoundColumn
HeaderText
=
"Porzione"
DataField
=
"Id"
HeaderStyle-Width
=
"100"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
>
11.
</
telerik:GridBoundColumn
>
12.
<
telerik:GridBoundColumn
HeaderText
=
"Descrizione"
DataField
=
"Descrizione"
HeaderStyle-HorizontalAlign
=
"Left"
ItemStyle-HorizontalAlign
=
"Left"
>
13.
</
telerik:GridBoundColumn
>
14.
</
Columns
>
15.
</
MasterTableView
>
16.
</
telerik:RadGrid
>
The Radgrid is inserted into of an ASP panel
Can you help me?
Regards
Cristian
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="ServiceCenter.aspx.vb" Inherits="ServiceCenter" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager"
runat
=
"server"
></
telerik:RadScriptManager
>
<
strong
>Centers:</
strong
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
ajaxsettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid2"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid2"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid2"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
ajaxsettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowPaging
=
"True"
PageSize
=
"5"
DataSourceID
=
"SqlDataSource1"
GridLines
=
"None"
width
=
"95%"
CellSpacing
=
"0"
>
<
clientsettings
allowkeyboardnavigation
=
"true"
enablepostbackonrowclick
=
"true"
>
<
Selecting
AllowRowSelect
=
"true"
/>
</
clientsettings
>
<
mastertableview
datakeynames
=
"Center_ID"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
></
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
></
ExpandCollapseColumn
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
></
EditColumn
>
</
EditFormSettings
>
<
PagerStyle
AlwaysVisible
=
"True"
/>
</
mastertableview
>
<
pagerstyle
mode
=
"NextPrevAndNumeric"
AlwaysVisible
=
"True"
/>
<
FilterMenu
EnableImageSprites
=
"False"
></
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
></
HeaderContextMenu
>
</
telerik:RadGrid
>
<
br
/>
<
br
/>
<
strong
>Services:</
strong
>
<
telerik:RadGrid
ID
=
"RadGrid2"
runat
=
"server"
AllowAutomaticDeletes
=
"True"
AutoGenerateColumns
=
"False"
AllowAutomaticInserts
=
"True"
AllowAutomaticUpdates
=
"True"
AllowPaging
=
"True"
CellSpacing
=
"0"
DataSourceID
=
"SqlDataSource2"
ShowStatusBar
=
"True"
GridLines
=
"None"
ShowFooter
=
"True"
Width
=
"95%"
>
<
MasterTableView
DataSourceID
=
"SqlDataSource2"
Width
=
"100%"
CommandItemDisplay
=
"TopAndBottom"
DataKeyNames
=
"CenterServices_ID"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
>
<
ItemStyle
CssClass
=
"MyImageButton"
/>
</
telerik:GridEditCommandColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn column"
HeaderText
=
"Service Name"
UniqueName
=
"TemplateColumn"
>
<
EditItemTemplate
>
<
telerik:RadComboBox
ID
=
"RadComboBox1"
Runat
=
"server"
DataSourceID
=
"SqlDataSource3"
DataTextField
=
"Service_Name"
DataValueField
=
"Service_ID"
SelectedValue='<%# Bind("CenterServices_Service") %>'>
</
telerik:RadComboBox
>
</
EditItemTemplate
>
<
InsertItemTemplate
>
<
telerik:RadComboBox
ID
=
"RadComboBox2"
Runat
=
"server"
DataSourceID
=
"SqlDataSource3"
DataTextField
=
"Service_Name"
DataValueField
=
"Service_ID"
SelectedValue='<%# Bind("CenterServices_Service") %>'>
</
telerik:RadComboBox
>
</
InsertItemTemplate
>
<
ItemTemplate
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text='<%# Eval("Service_Name") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Center"
UniqueName
=
"TemplateColumn1"
>
<
EditItemTemplate
>
<
asp:Label
ID
=
"Label2"
runat
=
"server"
Text='<%# Bind("CenterServices_Center") %>'></
asp:Label
>
</
EditItemTemplate
>
<
InsertItemTemplate
>
<
telerik:RadComboBox
ID
=
"RadComboBox3"
Runat
=
"server"
DataSourceID
=
"SqlDataSource4"
DataTextField
=
"Center_Code"
DataValueField
=
"Center_ID"
SelectedValue='<%# Bind("CenterServices_Center") %>'>
</
telerik:RadComboBox
>
</
InsertItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridButtonColumn
ConfirmText
=
"Delete this product?"
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Delete"
ButtonType
=
"ImageButton"
CommandName
=
"Delete"
Text
=
"Delete"
UniqueName
=
"DeleteColumn"
>
<
ItemStyle
HorizontalAlign
=
"Center"
CssClass
=
"MyImageButton"
/>
</
telerik:GridButtonColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
></
EditColumn
>
</
EditFormSettings
>
<
PagerStyle
AlwaysVisible
=
"True"
/>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
></
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
></
HeaderContextMenu
>
</
telerik:RadGrid
>
<
telerik:RadWindowManager
ID
=
"RadWindowManager1"
runat
=
"server"
></
telerik:RadWindowManager
>
<
br
/>
<
br
/>
<
strong
>Orders details:</
strong
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
ConnectionString
=
"xxxxxxxxxxxx"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"SELECT Centers.Center_ID, countries.CO_Name, Centers.Center_Region, Centers.Center_City, Centers.Center_Street_Number, Centers.Center_ZipCode, Centers.Center_WorkingHours, Centers.Center_Code FROM Centers INNER JOIN countries ON Centers.Center_Country = countries.CO_id"
runat
=
"server"
></
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"SqlDataSource2"
ConnectionString
=
"xxxxxxxxxxxx"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"SELECT CenterServices.CenterServices_ID, CenterServices.CenterServices_Center, CenterServices.CenterServices_Service, Services.Service_Name FROM CenterServices INNER JOIN Services ON CenterServices.CenterServices_Service = Services.Service_ID WHERE (CenterServices.CenterServices_Center = @CenterServices_Center)"
runat
=
"server"
DeleteCommand
=
"DELETE FROM CenterServices WHERE (CenterServices_ID = @CenterServices_ID)"
InsertCommand
=
"INSERT INTO [CenterServices] ([CenterServices_Center], [CenterServices_Service]) VALUES (@CenterServices_Center, @CenterServices_Service)"
UpdateCommand
=
"UPDATE [CenterServices] SET [CenterServices_Center] = @CenterServices_Center, [CenterServices_Service] = @CenterServices_Service WHERE [CenterServices_ID] = @CenterServices_ID"
>
<
DeleteParameters
>
<
asp:Parameter
Name
=
"CenterServices_ID"
Type
=
"Int32"
/>
</
DeleteParameters
>
<
InsertParameters
>
<
asp:Parameter
Name
=
"CenterServices_Center"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"CenterServices_Service"
Type
=
"Int32"
/>
</
InsertParameters
>
<
SelectParameters
>
<
asp:ControlParameter
ControlID
=
"RadGrid1"
Name
=
"CenterServices_Center"
PropertyName
=
"SelectedValue"
Type
=
"Int32"
/>
</
SelectParameters
>
<
UpdateParameters
>
<
asp:Parameter
Name
=
"CenterServices_Center"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"CenterServices_Service"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"CenterServices_ID"
Type
=
"Int32"
/>
</
UpdateParameters
>
</
asp:SqlDataSource
>
</
div
>
<
asp:SqlDataSource
ID
=
"SqlDataSource3"
runat
=
"server"
ConnectionString
=
"xxxxxxxxxxxx"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"SELECT * FROM [Services]"
>
</
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"SqlDataSource4"
runat
=
"server"
ConnectionString
=
"xxxxxxxxxxxx"
ProviderName
=
"System.Data.SqlClient"
SelectCommand
=
"SELECT [Center_ID], [Center_Code] FROM [Centers]"
>
</
asp:SqlDataSource
>
<
br
/>
</
form
>
</
body
>
</
html
>
Imports System
Imports System.Web.UI.WebControls
Imports Telerik.Web.UI
Partial Class ServiceCenter
Inherits System.Web.UI.Page
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
If RadGrid1.SelectedIndexes.Count = 0 Then
RadGrid1.SelectedIndexes.Add(0)
End If
If RadGrid2.SelectedIndexes.Count = 0 Then
RadGrid2.Rebind()
RadGrid2.SelectedIndexes.Add(0)
End If
End Sub
Protected Sub RadGrid1_ItemCommand(ByVal sender As Object, ByVal e As GridCommandEventArgs) Handles RadGrid1.ItemCommand
RadGrid2.SelectedIndexes.Clear()
End Sub
Protected Sub RadGrid2_ItemDeleted(ByVal source As Object, ByVal e As Telerik.Web.UI.GridDeletedEventArgs) Handles RadGrid2.ItemDeleted
Dim item As GridDataItem = DirectCast(e.Item, GridDataItem)
Dim id As String = item.GetDataKeyValue("CenterServices_ID").ToString()
If Not e.Exception Is Nothing Then
e.ExceptionHandled = True
SetMessage("Service Type with ID " + id + " cannot be deleted. Reason: " + e.Exception.Message)
Else
SetMessage("Service Type with ID " + id + " is deleted!")
End If
End Sub
Protected Sub RadGrid2_ItemUpdated(ByVal source As Object, ByVal e As Telerik.Web.UI.GridUpdatedEventArgs) Handles RadGrid2.ItemUpdated
Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem)
Dim id As String = item.GetDataKeyValue("CenterServices_ID").ToString()
If Not e.Exception Is Nothing Then
e.KeepInEditMode = True
e.ExceptionHandled = True
SetMessage("Service Type with ID " + id + " cannot be updated. Reason: " + e.Exception.Message)
Else
SetMessage("Service Type with ID " + id + " is updated!")
End If
End Sub
Protected Sub RadGrid2_ItemInserted(ByVal source As Object, ByVal e As Telerik.Web.UI.GridInsertedEventArgs) Handles RadGrid2.ItemInserted
If Not e.Exception Is Nothing Then
e.ExceptionHandled = True
e.KeepInInsertMode = True
SetMessage("Service Type cannot be inserted. Reason: " + e.Exception.Message)
Else
SetMessage("New Service Type is inserted!")
End If
End Sub
Private Sub DisplayMessage(ByVal text As String)
RadGrid2.Controls.Add(New LiteralControl(String.Format("<
span
style
=
'color:red'
>{0}</
span
>", text)))
End Sub
Private Sub SetMessage(ByVal message As String)
gridMessage = message
End Sub
Private gridMessage As String = Nothing
Protected Sub RadGrid2_DataBound(ByVal sender As Object, ByVal e As EventArgs) Handles RadGrid2.DataBound
If Not String.IsNullOrEmpty(gridMessage) Then
DisplayMessage(gridMessage)
End If
End Sub
End Class
I use BinaryImage in a RadListView (BinaryImage First Look example). Have problem if a Contact not have save image (BinaryImage)
I get "Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'."
Tips on how I get around if a contact person chooses not to store their personal contact picture in the database?
I use sql server 2008 and datatype varbinary(MAX)