i have a hierarchical radgrid on a master/content page which uses load on demand to load detail tables...
this functionality WAS WORKING and then i made quite a few ajax-related changes (added controls with ajax functionality, various troubleshooting changes, etc) which somewhere along the line took away this functionality.
the detailtabledatabind event is called, and executes properly, however it looks like the page is just never updated with the detail table data.
any help is appreciated!
I have my code below
master page markup:
relevant content markup:
relevant code-behind:
this functionality WAS WORKING and then i made quite a few ajax-related changes (added controls with ajax functionality, various troubleshooting changes, etc) which somewhere along the line took away this functionality.
the detailtabledatabind event is called, and executes properly, however it looks like the page is just never updated with the detail table data.
any help is appreciated!
I have my code below
master page markup:
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
style
type
=
"text/css"
>
html
{
overflow:hidden;
}
html,
body,
form
{
margin:0;
height:100%;
background-color:#f8f8f8;
}
#gridAreaContent
{
position: absolute;
width: 100%;
}
</
style
>
<
asp:ContentPlaceHolder
ID
=
"head"
runat
=
"server"
>
</
asp:ContentPlaceHolder
>
</
head
>
<
body
>
<
telerik:RadSkinManager
ID
=
"_radSkinMan"
Runat
=
"server"
Skin
=
"WebBlue"
>
</
telerik:RadSkinManager
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"_radScriptMan"
runat
=
"server"
>
<
Scripts
>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
</
Scripts
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxManager
ID
=
"_radAjaxMan"
runat
=
"server"
DefaultLoadingPanelID
=
"RadAjaxLoadingPanel1"
EnablePageHeadUpdate
=
"false"
/>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
BackColor
=
"White"
Transparency
=
"50"
ScrollBars
=
"None"
Height
=
"100%"
/>
<
telerik:RadSplitter
ID
=
"mainSplitter"
runat
=
"server"
Height
=
"100%"
Width
=
"100%"
Orientation
=
"Horizontal"
>
<
telerik:RadPane
ID
=
"RadPane1"
runat
=
"server"
CssClass
=
"ApplyOverflow"
Width
=
"100%"
Height
=
"100px"
Scrolling
=
"None"
>
<
div
style
=
"width:100%;"
>
<
telerik:RadMenu
ID
=
"_mainMenu"
runat
=
"server"
Width
=
"100%"
style
=
"position:absolute; border-width: 0px;"
>
</
telerik:RadMenu
>
</
div
>
<
div
style
=
"width:100%;"
>
<
div
style
=
"width:300px; margin-top:20px; float:right;"
>
<
asp:ContentPlaceHolder
ID
=
"loginArea"
runat
=
"server"
/>
</
div
>
<
asp:ContentPlaceHolder
ID
=
"SearchArea"
runat
=
"server"
/>
</
div
>
</
telerik:RadPane
>
<
telerik:RadPane
ID
=
"RadPane2"
runat
=
"server"
Width
=
"100%"
Height
=
"100%"
Scrolling
=
"None"
>
<
telerik:RadSplitter
ID
=
"RadSplitter2"
runat
=
"server"
Height
=
"100%"
Width
=
"100%"
Orientation
=
"Vertical"
>
<
telerik:RadPane
ID
=
"RadPane3"
runat
=
"server"
Height
=
"100%"
Scrolling
=
"None"
>
<
asp:ContentPlaceHolder
ID
=
"gridAreaContent"
runat
=
"server"
/>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"Radsplitbar1"
runat
=
"server"
CollapseMode
=
"Backward"
EnableResize
=
"false"
/>
<
telerik:RadPane
ID
=
"RadPane4"
runat
=
"server"
Height
=
"100%"
Width
=
"320px"
Scrolling
=
"None"
>
<
asp:ContentPlaceHolder
ID
=
"navPanel"
runat
=
"server"
/>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
</
form
>
</
body
>
</
html
>
relevant content markup:
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"head"
runat
=
"server"
>
<
style
type
=
"text/css"
>
#<%= _GridPanelClientID %>
{
margin:0;
height:800px;
}
#_Grid_GridData
{
overflow-x:hidden !important;
}
/*.bigModuleBottom td{padding:0}
div.RadToolBar_Vista { float: none !important; }
div.RadToolBar_Vista .rtbOuter { border: 0; } */
div.RadToolBar .rtbUL {
width: 100%;
}
div.SeparatedButtons .rtbItem {
float: left;
}
div.SeparatedButtons .rightAlignedWrapper {
text-align:center;
float: right !important;
}
</
style
>
<
telerik:RadCodeBlock
id
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function onToolBarClientButtonClicking(sender, args) {
function GetSelectedCSCPIDs()
{
var selectedRows = $find("<%=_Grid.MasterTableView.ClientID %>").get_selectedItems();
var retVal = "";
for (var i = 0; i <
selectedRows.length
; i++)
{
var
val
=
selectedRows
[i].getDataKeyValue("id");
retVal += val + ",";
}
retVal
= retVal.slice(0, retVal.length - 1);
return retVal;
}
function RecordSelected(index, e) {
$find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest("declineChartRefresh;" + GetSelectedCSCPIDs());
}
function PopulateGridContextMenu()
function RowContextMenu(sender, eventArgs) {
function PopulateMenu(menu, row)
function ClientGridMenuHidden(menu) {
</
script
>
</
telerik:RadCodeBlock
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"gridAreaContent"
runat
=
"server"
>
<
telerik:RadAjaxManagerProxy
ID
=
"_radAjaxProxy"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"_GridContextMenu"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"_Grid"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"_GridContextMenu"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"_searchButton"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanel5"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"_navMarketListingsPanel"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"_navMarketListingsPanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"_navNewsPanel"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"_navNewsPanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"_navMAPanel"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"_navMAPanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"_Grid"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"_navDeclineCurvePanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"_radAjaxMan"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"_navDeclineCurvePanel"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
input
type
=
"hidden"
id
=
"_GridSelected"
name
=
"_GridSelected"
/>
<
input
type
=
"hidden"
id
=
"_GridLastSelected"
name
=
"_GridLastSelected"
/>
<
input
type
=
"hidden"
id
=
"_GridCSCPIDsSelected"
name
=
"_GridCSCPIDsSelected"
/>
<
input
type
=
"hidden"
id
=
"currentQueryString"
name
=
"currentQueryString"
/>
<
telerik:RadContextMenu
ID
=
"_GridContextMenu"
runat
=
"server"
OnItemClick
=
"_GridContextMenu_ItemClick"
EnableRoundedCorners
=
"true"
EnableShadows
=
"true"
OnClientShowing
=
"PopulateGridContextMenu"
OnClientHidden
=
"ClientGridMenuHidden"
>
<
Targets
>
<
telerik:ContextMenuControlTarget
ControlID
=
"_Grid"
/>
</
Targets
>
</
telerik:RadContextMenu
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel5"
runat
=
"server"
>
<
telerik:RadGrid
ID
=
"_Grid"
runat
=
"server"
Width
=
"100%"
Height
=
"100%"
style
=
"border:0;"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
>
<
CommandItemTemplate
>
</
CommandItemTemplate
>
</
MasterTableView
>
<
ClientSettings
>
<
ClientEvents
OnRowSelected
=
"RecordSelected"
OnRowDeselected
=
"RecordSelected"
OnRowContextMenu
=
"RowContextMenu"
></
ClientEvents
>
</
ClientSettings
>
</
telerik:RadGrid
>
</
telerik:RadAjaxPanel
>
</
asp:Content
>
relevant code-behind:
protected
void
Page_Load(
object
sender, EventArgs e)
{
_Grid.DetailTableDataBind +=
new
GridDetailTableDataBindEventHandler(_Grid_DetailTableDataBind);
_Grid.NeedDataSource +=
new
GridNeedDataSourceEventHandler(_Grid_NeedDataSource);
_Grid.SortCommand +=
new
GridSortCommandEventHandler(_Grid_SortCommand);
_Grid.ItemDataBound +=
new
GridItemEventHandler(_Grid_ItemDataBound);
_Grid.SelectedIndexChanged +=
new
EventHandler(_Grid_SelectedIndexChanged);
RadAjaxManager _radAjaxMan = RadAjaxManager.GetCurrent(Page);
_radAjaxMan.AjaxRequest +=
new
RadAjaxControl.AjaxRequestDelegate(_radAjaxMan_AjaxRequest);
_radAjaxMan.AjaxSettings.AddAjaxSetting(_Grid, _navDeclineCurvePanel, (RadAjaxLoadingPanel)
this
.Master.FindControl(
"RadAjaxLoadingPanel1"
));
RadAjaxManager.GetCurrent(Page).AjaxSettingCreated +=
new
RadAjaxControl.AjaxSettingCreatedDelegate(contentpagecs_aspx_AjaxSettingCreated);
_radAjaxProxy.AjaxSettings.AddAjaxSetting(_Grid, _Grid);
//_radAjaxProxy.AjaxSettings.AddAjaxSetting(RadMenu1, RadMenu1);
}
void
_Grid_DetailTableDataBind(
object
sender, GridDetailTableDataBindEventArgs e)
{
e.Canceled =
true
;
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
switch
(e.DetailTableView.Name)
{
case
"WP"
:
{
string
cscpID = dataItem.GetDataKeyValue(
"id"
).ToString();
e.DetailTableView.DataSource = GetDataTable(GetWellProductionFromCSCPID(cscpID));
break
;
}
case
"MWP"
:
{
string
WellID = dataItem.GetDataKeyValue(
"WellID"
).ToString();
e.DetailTableView.DataSource = GetDataTable(GetMonthlyProduction(WellID));
break
;
}
}
}