telerik Rad Controls version: v.2010.3.1317.20
Visual Studio 2005, using VB
I have a master page with a RadAjaxManger. Our content pages have RadAjaxManagerProxies.
My problem is simple I think, but I have not been able to find a solution after scouring your forum and support documents.
I have a page with a radgrid and 2 user controls. I want the user controls to be Ajaxified so they only update themselves and dont cause full page postbacks. I want the radgrid to be the same way, except when the user selects a row on the radgrid, I want to be able to update the user controls data through a code behind by setting the a property on the UC.
so far I have gotten close by using this javascript on the radgrid's ClientEvents OnRowSelected:
and on my user controls' code behinds:
stepping through the code behind breakpoints, the functionality works (setting AuditID property changes all the data in the user controls). But the user controls are not being updated at all on the page. I read somewhere on this site you could call ajaxRequest on a radajaxpanel, but it seems to do nothing call a panel's ajaxRequest method. Also,the client side documentation for RadAjaxPanel here makes no mention of AjaxRequest.
Fiddling around with ajaxRequestWithTarget (targetting my usercontrols) causes a full page postback and doesnt even call my manager_AjaxRequest(...) subroutines.
Additionally, I have to tie the ajaxpanel's to themselves in the proxy ajaxsettings, otherwise everything does a full page postback for some reason (i thought that radajaxpanel's were supposed to 'Ajaxify' their contents). If I omit the radajaxpanel's and instead tie the controls to themselves in the ajaxsettings, then my grid and usercontrols all have incorrect heights on the webpage which makes them virtually unusable.
I greatly appreciate any advice you can offer.
Here's some of the ASPX (some radgrid cols omitted, as well as datasources):
Visual Studio 2005, using VB
I have a master page with a RadAjaxManger. Our content pages have RadAjaxManagerProxies.
My problem is simple I think, but I have not been able to find a solution after scouring your forum and support documents.
I have a page with a radgrid and 2 user controls. I want the user controls to be Ajaxified so they only update themselves and dont cause full page postbacks. I want the radgrid to be the same way, except when the user selects a row on the radgrid, I want to be able to update the user controls data through a code behind by setting the a property on the UC.
so far I have gotten close by using this javascript on the radgrid's ClientEvents OnRowSelected:
function
MyAjaxRequest(sender, args)
{
var
id = args.getDataKeyValue(
"AuditEntryID"
).toString();
var
ajaxObj = $find(
"<%= RadAjaxManager.GetCurrent(Page).ClientID %>"
);
ajaxObj.ajaxRequest(
"id:"
+ id);
}
and on my user controls' code behinds:
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
Me
.Load
Dim
manager
As
RadAjaxManager = RadAjaxManager.GetCurrent(Page)
AddHandler
manager.AjaxRequest,
AddressOf
manager_AjaxRequest
End
Sub
Private
Sub
manager_AjaxRequest(
ByVal
sender
As
Object
,
ByVal
e
As
AjaxRequestEventArgs)
Dim
result
As
String
= e.Argument.Split(
":"
)(1)
AuditID = result
End
Sub
stepping through the code behind breakpoints, the functionality works (setting AuditID property changes all the data in the user controls). But the user controls are not being updated at all on the page. I read somewhere on this site you could call ajaxRequest on a radajaxpanel, but it seems to do nothing call a panel's ajaxRequest method. Also,the client side documentation for RadAjaxPanel here makes no mention of AjaxRequest.
Fiddling around with ajaxRequestWithTarget (targetting my usercontrols) causes a full page postback and doesnt even call my manager_AjaxRequest(...) subroutines.
Additionally, I have to tie the ajaxpanel's to themselves in the proxy ajaxsettings, otherwise everything does a full page postback for some reason (i thought that radajaxpanel's were supposed to 'Ajaxify' their contents). If I omit the radajaxpanel's and instead tie the controls to themselves in the ajaxsettings, then my grid and usercontrols all have incorrect heights on the webpage which makes them virtually unusable.
I greatly appreciate any advice you can offer.
Here's some of the ASPX (some radgrid cols omitted, as well as datasources):
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"cphMain"
runat
=
"Server"
>
<
telerik:RadCodeBlock
ID
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
language
=
"javascript"
>
function LR_Collapsed()
{
var left = $find("<%=LeftPane.ClientID%>");
var right = $find("<%=RightPane.ClientID%>");
var bottom = $find("<%=BottomPane.ClientID%>");
if (left.get_collapsed() && right.get_collapsed())
{
bottom.expand(1);
}
}
function LR_Expanded()
{
var bottom = $find("<%=BottomPane.ClientID%>");
bottom.collapse(1);
}
function MyAjaxRequest(sender, args)
{
var id = args.getDataKeyValue("AuditEntryID").toString();
var ajaxObj = $find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>");
//ajaxObj.ajaxRequestWithTarget('<%=AccordionExisting1.UniqueID%>',"id:" + id);
ajaxObj.ajaxRequest("id:" + id);
}
</
script
>
</
telerik:RadCodeBlock
>
<
telerik:RadAjaxManagerProxy
ID
=
"AjaxManagerProxy1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxPanelExisting"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanelExisting"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxPanelProposed"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanelProposed"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadAjaxPanel1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadAjaxPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
telerik:RadSplitter
ID
=
"RadSplitter1"
runat
=
"server"
Skin
=
"Office2007"
Width
=
"100%"
Height
=
"100%"
>
<
telerik:RadPane
ID
=
"LeftPane"
runat
=
"server"
Scrolling
=
"None"
Width
=
"25%"
OnClientCollapsed
=
"LR_Collapsed"
OnClientExpanded
=
"LR_Expanded"
>
<
telerik:RadAjaxPanel
id
=
"RadAjaxPanelExisting"
runat
=
"server"
height
=
"100%"
width
=
"100%"
>
<
uc2:AccordionExisting
ID
=
"AccordionExisting1"
runat
=
"server"
/>
</
telerik:RadAjaxPanel
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitBar1"
runat
=
"server"
CollapseMode
=
"Forward"
Width
=
"25px"
EnableTheming
=
"True"
/>
<
telerik:RadPane
ID
=
"MiddlePane"
runat
=
"server"
Scrolling
=
"None"
>
<
telerik:RadSplitter
ID
=
"RadSplitterMid"
runat
=
"server"
Skin
=
"Office2007"
Width
=
"100%"
Height
=
"100%"
Orientation
=
"Horizontal"
>
<
telerik:RadPane
ID
=
"TopPane"
runat
=
"server"
Scrolling
=
"None"
Height
=
"0%"
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitBar3"
runat
=
"server"
CollapseMode
=
"Forward"
Width
=
"25px"
/>
<
telerik:RadPane
ID
=
"BottomPane"
runat
=
"server"
Scrolling
=
"None"
>
<
telerik:RadAjaxPanel
id
=
"RadAjaxPanel1"
runat
=
"server"
height
=
"100%"
width
=
"100%"
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
DataSourceID
=
"SqlDataSourceAudit"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
Width
=
"100%"
Height
=
"100%"
AllowPaging
=
"False"
PageSize
=
"8"
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
>
</
HeaderContextMenu
>
<
MasterTableView
DataSourceID
=
"SqlDataSourceAudit"
CommandItemDisplay
=
"Top"
ClientDataKeyNames
=
"AuditEntryID"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
/>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridTemplateColumn
HeaderText
=
"Building"
UniqueName
=
"Building"
FilterControlAltText
=
"Filter Building column"
>
<
ItemTemplate
>
<
telerik:RadComboBox
ID
=
"rcbBuilding"
runat
=
"server"
AllowCustomText
=
"True"
Filter
=
"Contains"
Width
=
"100%"
>
</
telerik:RadComboBox
>
</
ItemTemplate
>
<
HeaderStyle
Width
=
"100px"
/>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"AuditEntryID"
UniqueName
=
"AuditEntryID"
FilterControlAltText
=
"Filter AuditEntryID column"
Display
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
ConfirmText
=
"Delete this audit entry?"
ConfirmDialogType
=
"RadWindow"
ConfirmTitle
=
"Delete"
ButtonType
=
"ImageButton"
CommandName
=
"Delete"
Text
=
"Delete"
UniqueName
=
"DeleteColumn"
ImageUrl
=
"~/images/16/remove_16.png"
FilterControlAltText
=
"Filter DeleteColumn column"
>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
<
HeaderStyle
Width
=
"25px"
/>
</
telerik:GridButtonColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
<
CommandItemTemplate
>
<
table
>
<
tr
>
<
td
align
=
"left"
>
<
asp:ImageButton
ID
=
"btnAdd"
Tooltip
=
"Add"
CommandName
=
"Insert"
Runat
=
"server"
ImageUrl
=
"~/images/16/add_16.png"
></
asp:ImageButton
>
<
asp:ImageButton
ID
=
"btnSave"
Tooltip
=
"Save"
CommandName
=
"Save"
Runat
=
"server"
ImageUrl
=
"~/images/16/floppy_disk_16.png"
></
asp:ImageButton
>
</
td
>
<
td
align
=
"right"
>
<
asp:ImageButton
ID
=
"btnRefresh"
Tooltip
=
"Refresh data"
CommandName
=
"Cancel"
Runat
=
"server"
ImageUrl
=
"~/images/16/refresh_16.png"
></
asp:ImageButton
>
</
td
>
</
tr
>
</
table
>
</
CommandItemTemplate
>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
>
</
FilterMenu
>
<
ClientSettings
>
<
Selecting
AllowRowSelect
=
"True"
/>
<
Resizing
AllowColumnResize
=
"True"
/>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
/>
<
ClientEvents
OnRowSelected
=
"MyAjaxRequest"
/>
</
ClientSettings
>
<
PagerStyle
Mode
=
"Slider"
/>
</
telerik:RadGrid
>
</
telerik:RadAjaxPanel
>
</
telerik:RadPane
></
telerik:RadSplitter
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitBar2"
runat
=
"server"
CollapseMode
=
"Backward"
Width
=
"25px"
/>
<
telerik:RadPane
ID
=
"RightPane"
runat
=
"server"
Scrolling
=
"None"
Width
=
"25%"
OnClientCollapsed
=
"LR_Collapsed"
OnClientExpanded
=
"LR_Expanded"
>
<
telerik:RadAjaxPanel
id
=
"RadAjaxPanelProposed"
runat
=
"server"
height
=
"100%"
width
=
"100%"
>
<
uc3:AccordionProposed
ID
=
"AccordionProposed1"
runat
=
"server"
/>
</
telerik:RadAjaxPanel
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
</
asp:Content
>