or
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
DefaultLoadingPanelID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"prospectGrid"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"prospectGrid"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxManager1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"prospectGrid"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
telerik:RadAjaxManager
>
<
telerik:RadGrid
ID
=
"prospectGrid"
AllowFilteringByColumn
=
"true"
AllowPaging
=
"True"
PageSize
=
"50"
runat
=
"server"
AllowSorting
=
"true"
OnNeedDataSource
=
"prospectGrid_NeedDataSource"
GridLines
=
"None"
AllowMultiRowSelection
=
"false"
Height
=
"450px"
OnItemDataBound
=
"OnDataBound"
>
<
PagerStyle
Visible
=
"false"
/>
<
MasterTableView
DataKeyNames
=
"ID"
TableLayout
=
"Fixed"
AutoGenerateColumns
=
"false"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
HeaderText
=
"ProspectId"
Display
=
"false"
UniqueName
=
"ProspectId"
/>
<
telerik:GridTemplateColumn
DataField
=
"Live"
HeaderText
=
"Live"
AllowFiltering
=
"false"
HeaderStyle-Width
=
"30px"
>
<
ItemTemplate
>
<
center
>
<
asp:Image
ID
=
"Image1"
runat
=
"server"
ImageUrl
=
"~/images/live.png"
Visible='<%#Eval("Live") %>' /></
center
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"PartnerCompany"
HeaderText
=
"Partner Company"
UniqueName
=
"PartnerCompany"
/>
<
telerik:GridBoundColumn
DataField
=
"PersonName"
HeaderText
=
"Person Name"
UniqueName
=
"CustomerName"
/>
<
telerik:GridBoundColumn
DataField
=
"ServiceType"
HeaderText
=
"Service Type"
UniqueName
=
"ServiceType"
/>
<
telerik:GridBoundColumn
DataField
=
"PersonContact"
HeaderText
=
"Person Contact"
UniqueName
=
"Contact"
/>
<
telerik:GridBoundColumn
DataField
=
"Title"
HeaderText
=
"Title"
UniqueName
=
"Title"
/>
<
telerik:GridBoundColumn
DataField
=
"PersonDirectNumber"
HeaderText
=
"Person Direct No"
UniqueName
=
"Phone No"
/>
<
telerik:GridBoundColumn
DataField
=
"PersonEmail"
HeaderText
=
"Person Email"
UniqueName
=
"Email"
/>
<
telerik:GridBoundColumn
DataField
=
"FollowUpDate"
HeaderText
=
"FollowUp Date"
UniqueName
=
"FollowUpDate"
/>
<
telerik:GridBoundColumn
DataField
=
"FollowUpDesc"
HeaderText
=
"Follow Up Desc"
UniqueName
=
"Description"
/>
<
telerik:GridBoundColumn
DataField
=
"ContractETA"
HeaderText
=
"Contract ETA"
UniqueName
=
"CotnactETA"
/>
<
telerik:GridBoundColumn
DataField
=
"ServiceETA"
HeaderText
=
"Service ETA"
UniqueName
=
"ServiceETA"
/>
<
telerik:GridTemplateColumn
DataField
=
"NotesDesc"
HeaderText
=
"Notes"
AllowFiltering
=
"false"
HeaderStyle-Width
=
"55px"
>
<
ItemTemplate
>
<
center
>
<
a
href
=
"#"
onclick
=
"notesClick('<%#DataBinder.Eval(Container.DataItem,"
ID")%>'); return false;">
<
input
type
=
"image"
src
=
"images/note.png"
/></
a
></
center
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
DataField
=
""
HeaderText
=
"Follow Up"
AllowFiltering
=
"false"
HeaderStyle-Width
=
"70px"
>
<
ItemTemplate
>
<
center
>
<
asp:HyperLink
ImageUrl
=
"~/images/schedule.png"
ID
=
"schedule"
runat
=
"server"
/>
</
center
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
Resizing-AllowColumnResize
=
"true"
EnablePostBackOnRowClick
=
"false"
>
<
ClientEvents
OnRowDblClick
=
"OnRowDblClick"
/>
<
Selecting
AllowRowSelect
=
"false"
/>
<
Scrolling
AllowScroll
=
"true"
FrozenColumnsCount
=
"3"
UseStaticHeaders
=
"true"
SaveScrollPosition
=
"true"
/>
<
ClientEvents
OnScroll
=
"handleScrolling"
/>
</
ClientSettings
>
<
HeaderStyle
Width
=
"200px"
/>
</
telerik:RadGrid
>
<
telerik:RadCodeBlock
runat
=
"server"
>
function handleScrolling(e) {
var grid = $find("<%=prospectGrid.ClientID %>");
var scrollArea = document.getElementById("<%= prospectGrid.ClientID %>" + "_GridData");
if (IsScrolledToBottom(scrollArea)) {
var currentlyDisplayedRecords = grid.get_masterTableView().get_pageSize() * (grid.get_masterTableView().get_currentPageIndex() + 1);
//if the presently visible items are less than the entire source records count
//trigger an ajax request to increase them
if (currentlyDisplayedRecords <
30
) {
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("LoadMoreRecords");
}
}
}
//this method calculates whether you have reached the bottom when dragging the vertical grid scroll
function IsScrolledToBottom(scrollArea) {
var currentPosition = scrollArea.scrollTop + scrollArea.clientHeight;
return currentPosition == scrollArea.scrollHeight;
}
</
telerik:RadCodeBlock
>
protected void prospectGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
prospectGrid.VirtualItemCount = DbContext.getProspectProfile(startRowIndex ,endRowIndex).ToList().Count();
int totalCount = prospectGrid.VirtualItemCount;
int startRowIndex = (prospectGrid.CurrentPageIndex * prospectGrid.PageSize) + 1;
int endRowIndex = ((startRowIndex + 15) > totalCount ? totalCount : startRowIndex + 15) - 1;
prospectGrid.DataSource = DbContext.getProspectProfile(startRowIndex ,endRowIndex);
}
public
class
TestGrid : CompositeControl
{
private
readonly
SearchCriteria searchCriteria =
new
SearchCriteria();
private
RadGrid grid;
/// <summary>
/// Contains search criteria set from controls on the parent page.
/// This is what drives exactly what is displayed in the grid, and
/// only seems to be set just before PreRender.
/// </summary>
[Browsable(
false
)]
public
SearchCriteria SearchCriteria
{
get
{
return
this
.searchCriteria;
}
}
protected
override
void
OnPreRender(EventArgs e)
{
base
.OnPreRender(e);
grid.DataSource =
this
.GetJobs();
grid.DataBind();
}
protected
override
void
OnInit(EventArgs e)
{
base
.OnInit(e);
this
.EnsureChildControls();
}
protected
override
void
CreateChildControls()
{
this
.Controls.Clear();
grid =
new
RadGrid
{
ID =
"grid"
,
DataSource =
this
.GetJobs(),
AutoGenerateColumns =
false
,
AllowPaging =
true
,
ShowStatusBar =
true
,
PageSize = 10,
Height =
this
.Height,
Width =
this
.Width
};
grid.ClientSettings.Scrolling.AllowScroll =
true
;
grid.MasterTableView.DataKeyNames =
new
[] {
"BatchId"
};
grid.Columns.Add(
new
GridBoundColumn { DataField =
"PolicyNumber"
, HeaderText =
"Policy Number"
});
grid.Columns.Add(
new
GridBoundColumn { DataField =
"Surname"
, HeaderText =
"Surname"
});
var detailTable =
new
GridTableView(grid) { DataKeyNames =
new
[] {
"BatchId"
}, DataSource =
this
.GetDocuments() };
detailTable.ParentTableRelation.Add(
new
GridRelationFields { DetailKeyField =
"BatchId"
, MasterKeyField =
"BatchId"
});
detailTable.Columns.Add(
new
GridBoundColumn { DataField =
"PolicyNumber"
, HeaderText =
"Policy Number"
});
detailTable.Columns.Add(
new
GridBoundColumn { DataField =
"DocumentType"
, HeaderText =
"Document Type"
});
grid.MasterTableView.DetailTables.Add(detailTable);
this
.Controls.Add(grid);
}
private
IEnumerable<Job> GetJobs()
{
// Snipped for brevity.
}
private
IEnumerable<Document> GetDocuments()
{
// Snipped for brevity.
}
}
protected void gv_ItemDataBound(object sender, GridItemEventArgs e)
{
var q = from result in db.sp_TempSearchCode_s("USEYN")
select new
{
TEXT = result.TEXT,
USE_YN = result.VALUE
};
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem item = (GridEditableItem)e.Item;
RadComboBox combo = (RadComboBox)item["UseYN"].Controls[0];
foreach (var items in q)
{
combo.Items.Add(new RadComboBoxItem(items.TEXT, items.USE_YN));
}
}
}