I've constructed a simple AJAX-enabled web page with this code:
Attached is a screenshot of one of the two modes of the page. In this simpler mode, the user picks an item from a grid and presses "Display Task". That causes a RadWindow to be opened which contains a summary grid displaying associated data for this item.
I spent several hours trying to get the RadGrid in the RadWindow to display. It would not. Only when I added an UpdatePanel in the RadWindow did it suddenly work.
Two questions:
<%@ Page Language="C#" MasterPageFile="~/main.master" AutoEventWireup="true" Inherits="taskChecker" Codebehind="taskChecker.aspx.cs" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"ContentPlaceHolder1"
Runat
=
"Server"
>
<
script
type
=
"text/javascript"
>
function contentPageLoad(sender, e) {
}
</
script
>
<
asp:HiddenField
ID
=
"divScrollInit"
runat
=
"server"
/>
<
div
class
=
"contentHeader"
>
Task Checker
</
div
>
<
div
class
=
"content1"
>
<
asp:UpdatePanel
ID
=
"UpdatePanel1"
runat
=
"server"
>
<
ContentTemplate
>
<
div
style
=
"font-size:14px; font-weight:bold; margin-left:-100px; margin-top:-30px"
>
<
asp:RadioButtonList
ID
=
"radioButtonMode"
runat
=
"server"
RepeatDirection
=
"Horizontal"
AutoPostBack
=
"true"
OnSelectedIndexChanged
=
"radioButtonMode_IndexChanged"
CellSpacing
=
"30"
>
<
asp:ListItem
Text
=
"Display Task"
Value
=
"Display"
/>
<
asp:ListItem
Text
=
"Compare Tasks"
Value
=
"Compare"
/>
</
asp:RadioButtonList
>
</
div
>
<
asp:UpdateProgress
ID
=
"UpdateProgress1"
runat
=
"server"
Visible
=
"true"
>
<
ProgressTemplate
>
<
div
id
=
"progress"
class
=
"progress3"
>
<
img
src
=
"../Images/Progress/indicator_big.gif"
/>
<
br
/><
br
/>
Please Wait
</
div
>
</
ProgressTemplate
>
</
asp:UpdateProgress
>
<
asp:Panel
ID
=
"panelMain"
runat
=
"server"
Visible
=
"false"
style
=
"margin-left:-50px; margin-bottom:30px"
>
<
div
class
=
"titleBlack"
style
=
"padding-bottom:10px"
>
<
asp:Label
ID
=
"labelInstructions"
runat
=
"server"
/>
</
div
>
<
div
id
=
"divTaskListGrid1"
style
=
"overflow-x:hidden; overflow-y:auto; width:705px; max-height:200px; border:1px solid black"
>
<
telerik:RadGrid
ID
=
"radGridTaskList"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowSorting
=
"true"
Width
=
"687px"
BorderColor
=
"#E7E7FF"
BorderStyle
=
"Solid"
BorderWidth
=
"1"
CellPadding
=
"0"
GridLines
=
"Both"
OnSelectedIndexChanged
=
"radGridTaskList_SelectedIndexChanged"
>
<
HeaderStyle
Font-Bold
=
"true"
ForeColor
=
"#031d5b"
VerticalAlign
=
"Middle"
Height
=
"20"
CssClass
=
"pointerOnly headerGrid"
/>
<
ItemStyle
CssClass
=
"radGridItem"
/>
<
AlternatingItemStyle
CssClass
=
"radGridAltItem"
/>
<
ClientSettings
EnablePostBackOnRowClick
=
"true"
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
<
MasterTableView
BorderWidth
=
"0"
DataKeyNames
=
"TaskID,TaskLevel"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"TaskId"
HeaderText
=
"Task Id"
SortExpression
=
"TaskId"
ItemStyle-HorizontalAlign
=
"Center"
>
<
HeaderStyle
Width
=
"55px"
HorizontalAlign
=
"Center"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskNumber"
HeaderText
=
"Task #"
SortExpression
=
"TaskNumber"
ItemStyle-HorizontalAlign
=
"Center"
>
<
HeaderStyle
Width
=
"40px"
HorizontalAlign
=
"Center"
/>
<
ItemStyle
HorizontalAlign
=
"Right"
CssClass
=
"indentRight20"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskDate"
HeaderText
=
"Date"
SortExpression
=
"TaskDate"
DataFormatString
=
"{0:MMM yyyy}"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"60px"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Mine"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"50px"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
<
ItemTemplate
>
<%# GetMine(Convert.ToInt32(Eval("TaskLevel"))) %>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Contract"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"60px"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
<
ItemTemplate
>
<%# GetContract(Convert.ToInt32(Eval("TaskLevel"))) %>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskDescription"
HeaderText
=
"Description"
SortExpression
=
"TaskDescription"
ReadOnly
=
"True"
>
<
HeaderStyle
HorizontalAlign
=
"Left"
/>
<
ItemStyle
Wrap
=
"true"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskStdHours"
HeaderText
=
"Std Hrs"
SortExpression
=
"TaskStdHours"
ItemStyle-HorizontalAlign
=
"Center"
>
<
HeaderStyle
Width
=
"60px"
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderStyle-Width
=
"60px"
HeaderText
=
"Completed"
ItemStyle-HorizontalAlign
=
"Center"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"labelCompleted"
runat
=
"server"
Text='<%# Convert.ToBoolean(Eval("TaskStatus")) ? "Yes" : "No" %>' />
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
<
div
id
=
"divTaskListGrid2"
runat
=
"server"
style
=
"overflow-x:hidden; overflow-y:auto; width:705px; max-height:200px; border:1px solid black; margin-top:25px"
>
<
telerik:RadGrid
ID
=
"radGridTaskList2"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowSorting
=
"true"
Width
=
"687px"
BorderColor
=
"#E7E7FF"
BorderStyle
=
"Solid"
BorderWidth
=
"1"
CellPadding
=
"0"
GridLines
=
"Both"
OnSelectedIndexChanged
=
"radGridTaskList2_SelectedIndexChanged"
>
<
HeaderStyle
Font-Bold
=
"true"
ForeColor
=
"#031d5b"
VerticalAlign
=
"Middle"
Height
=
"20"
CssClass
=
"pointerOnly headerGrid2"
/>
<
ItemStyle
CssClass
=
"radGridItem"
/>
<
AlternatingItemStyle
CssClass
=
"radGridAltItem"
/>
<
ClientSettings
EnablePostBackOnRowClick
=
"true"
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
<
MasterTableView
BorderWidth
=
"0"
DataKeyNames
=
"TaskID,TaskLevel"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"TaskId"
HeaderText
=
"Task Id"
SortExpression
=
"TaskId"
ItemStyle-HorizontalAlign
=
"Center"
>
<
HeaderStyle
Width
=
"55px"
HorizontalAlign
=
"Center"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskNumber"
HeaderText
=
"Task #"
SortExpression
=
"TaskNumber"
ItemStyle-HorizontalAlign
=
"Center"
>
<
HeaderStyle
Width
=
"40px"
HorizontalAlign
=
"Center"
/>
<
ItemStyle
HorizontalAlign
=
"Right"
CssClass
=
"indentRight20"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskDate"
HeaderText
=
"Date"
SortExpression
=
"TaskDate"
DataFormatString
=
"{0:MMM yyyy}"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"60px"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Mine"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"50px"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
<
ItemTemplate
>
<%# GetMine(Convert.ToInt32(Eval("TaskLevel"))) %>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Contract"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"60px"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
<
ItemTemplate
>
<%# GetContract(Convert.ToInt32(Eval("TaskLevel"))) %>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskDescription"
HeaderText
=
"Description"
SortExpression
=
"TaskDescription"
ReadOnly
=
"True"
>
<
HeaderStyle
HorizontalAlign
=
"Left"
/>
<
ItemStyle
Wrap
=
"true"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TaskStdHours"
HeaderText
=
"Std Hrs"
SortExpression
=
"TaskStdHours"
ItemStyle-HorizontalAlign
=
"Center"
>
<
HeaderStyle
Width
=
"60px"
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderStyle-Width
=
"60px"
HeaderText
=
"Completed"
ItemStyle-HorizontalAlign
=
"Center"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"labelCompleted"
runat
=
"server"
Text='<%# Convert.ToBoolean(Eval("TaskStatus")) ? "Yes" : "No" %>' />
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
<
div
style
=
"padding-top:20px"
>
<
asp:Button
ID
=
"buttonSubmit"
runat
=
"server"
OnClick
=
"buttonSubmit_Click"
/>
</
div
>
</
asp:Panel
>
</
ContentTemplate
>
</
asp:UpdatePanel
>
<
telerik:RadWindow
ID
=
"rwResults"
runat
=
"server"
Behaviors
=
"Close,Move"
EnableShadow
=
"true"
VisibleStatusbar
=
"false"
VisibleTitlebar
=
"true"
AutoSize
=
"true"
Modal
=
"true"
>
<
ContentTemplate
>
<
asp:UpdatePanel
ID
=
"UpdatePanel2"
runat
=
"server"
>
<
ContentTemplate
>
<
telerik:RadGrid
ID
=
"radGridResults"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowSorting
=
"true"
Width
=
"600"
Height
=
"400"
BorderColor
=
"#E7E7FF"
BorderStyle
=
"Solid"
BorderWidth
=
"1"
CellPadding
=
"0"
GridLines
=
"Both"
>
<
HeaderStyle
Font-Bold
=
"true"
ForeColor
=
"#031d5b"
VerticalAlign
=
"Middle"
Height
=
"20"
CssClass
=
"pointerOnly headerGrid"
/>
<
ItemStyle
CssClass
=
"radGridItem"
/>
<
AlternatingItemStyle
CssClass
=
"radGridAltItem"
/>
<
MasterTableView
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"TableName"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"FieldName"
HeaderText
=
"Field"
ItemStyle-HorizontalAlign
=
"Left"
>
<
HeaderStyle
Width
=
"80px"
HorizontalAlign
=
"Left"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value1"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"60px"
BackColor
=
"#bcd0fe"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Value2"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"60px"
BackColor
=
"#d6bcfe"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<%-- <
telerik:GridImageColumn
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"30px"
/>
</
telerik:GridImageColumn
>--%>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
ContentTemplate
>
</
asp:UpdatePanel
>
</
ContentTemplate
>
</
telerik:RadWindow
>
</
div
>
<
div
class
=
"subtleMsg"
>
<
div
id
=
"msg"
/>
</
div
>
</
asp:Content
>
Attached is a screenshot of one of the two modes of the page. In this simpler mode, the user picks an item from a grid and presses "Display Task". That causes a RadWindow to be opened which contains a summary grid displaying associated data for this item.
I spent several hours trying to get the RadGrid in the RadWindow to display. It would not. Only when I added an UpdatePanel in the RadWindow did it suddenly work.
Two questions:
- If the parent page has an UpdatePanel then why does the RadWindow need an UpdatePanel too?
- If #1 is always true then shouldn't your documentation include this fact? For example, here it does not.
Sincerely,
Robert W.