I have simplified my code by removing all my javascript. I now have a SharePoint webpart that adds a radAjaxPanel via code, and I add a user control to the radAjaxPanel. I have also added a RadAjaxManager and AjaxSettings via code.
01.
protected
override
void
OnInit(EventArgs e)
02.
{
03.
base
.OnInit(e);
04.
this
.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Left;
05.
_radAjaxLoadingPanel =
new
RadAjaxLoadingPanel();
06.
_radAjaxLoadingPanel.ID =
"RadAjaxLoadingPanel1"
;
07.
_radAjaxLoadingPanel.Skin =
"Windows7"
;
08.
_radAjaxLoadingPanel.MinDisplayTime = 500;
09.
_radAjaxLoadingPanel.Transparency = 30;
10.
11.
_radAjaxPanel =
new
RadAjaxPanel();
12.
_radAjaxPanel.ID =
"RadAjaxPanel1"
;
13.
_radAjaxPanel.LoadingPanelID =
"RadAjaxLoadingPanel1"
;
14.
_radAjaxPanel.EnableAJAX =
false
;
// freshdesk issues 5434, 4419, 4558 - chrome browser
15.
16.
_docSearchUserControl = Page.LoadControl(_ascxPath)
as
DocSearchUserControl;
17.
_docSearchUserControl.ID =
"DocSearchUserControl"
;
18.
_docSearchUserControl.ParentWebPart =
this
;
// add reference to this web part
19.
20.
_radAjaxPanel.Controls.Add(_docSearchUserControl);
21.
22.
ajaxmgr = RadAjaxManager.GetCurrent(Page);
23.
if
(ajaxmgr ==
null
)
24.
{
25.
ajaxmgr =
new
RadAjaxManager() { ID =
"RadAjaxManager1"
};
26.
Page.Items.Add(
typeof
(RadAjaxManager), ajaxmgr);
27.
}
28.
29.
if
(Page.Form !=
null
)
30.
{
31.
Page.Form.Controls.AddAt(0, ajaxmgr);
32.
}
33.
34.
Controls.Add(_radAjaxLoadingPanel);
35.
Controls.Add(_radAjaxPanel);
36.
37.
EnsureChildControls();
39.
40.
}
41.
42.
protected
override
void
CreateChildControls()
43.
{
44.
RadAjaxLoadingPanel loadingPanel = _radAjaxLoadingPanel;
45.
46.
RadGrid grid =
null
;
47.
RadSearchBox searchRadSearchBox =
null
;
48.
RadButton button1 =
null
;
49.
Panel panel1 =
null
;
50.
51.
if
(_docSearchUserControl !=
null
)
52.
{
53.
grid = _docSearchUserControl.FindControl(
"SearchResultsRadGrid"
)
as
RadGrid;
54.
searchRadSearchBox = _docSearchUserControl.FindControl(
"SearchRadSearchBox"
)
as
RadSearchBox;
55.
button1 = _docSearchUserControl.FindControl(
"Button1"
)
as
RadButton;
56.
panel1 = _docSearchUserControl.FindControl(
"Panel1"
)
as
Panel;
57.
}
58.
if
(ajaxmgr !=
null
)
59.
{
60.
if
(searchRadSearchBox !=
null
)
61.
{
62.
AjaxSetting ajaxSetting3 =
new
AjaxSetting();
63.
ajaxSetting3.AjaxControlID = button1.ID;
64.
ajaxSetting3.UpdatedControls.Add(
new
AjaxUpdatedControl(panel1.ID, loadingPanel.ID));
65.
ajaxmgr.AjaxSettings.Add(ajaxSetting3);
66.
}
67.
}
68.
}
The user control has a single RadButton which posts back. This code works perfectly in IE, but in Chrome/Edge, it works only the first time. Subsequent clicks of the button DO post back, but do not show the loading panel. There are no errors in the debugger. So now I have tried the loading panel with both a radajaxpanel and a radajaxmanager and both behave exactly the same. Any clues - this looks like a bug to me. What is the next step?