hello and good day.
Problem: Radconfirm windows stops working after AjaxManager rebinds the mastertableview
I'm having a strange issue in regards to using the GridButtonColumn confirmtext and radwindow when trying to use the ajaxManager. I have deduced that is has to do with the method in wich I am loading the control into my base aspx page, but am at a loss as to how to work around it or deal with it. ie..if i just drop the control into a default.aspx page, it works as expected and the confirm window continues to popup on each click. however if I am trying to work from within loaded viewstate, it seems to be destroyed.
Ctrls Code: (trimmed for brevity )
Base Page Source
<asp:panel id="Panel1" runat="server"></panel>
Base Page Code
Problem: Radconfirm windows stops working after AjaxManager rebinds the mastertableview
I'm having a strange issue in regards to using the GridButtonColumn confirmtext and radwindow when trying to use the ajaxManager. I have deduced that is has to do with the method in wich I am loading the control into my base aspx page, but am at a loss as to how to work around it or deal with it. ie..if i just drop the control into a default.aspx page, it works as expected and the confirm window continues to popup on each click. however if I am trying to work from within loaded viewstate, it seems to be destroyed.
Ctrls Code: (trimmed for brevity )
<telerik:RadWindowManager ReloadOnShow="true" ID="RadWindowManager1" runat="server"> |
</telerik:RadWindowManager> |
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnablePageHeadUpdate="False"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadGrid1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
<telerik:AjaxUpdatedControl ControlID="TermCancel_App" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="DSTerm" GridLines="None"> |
<MasterTableView AutoGenerateColumns="False" |
FilterExpression="[ApprovedBy] Is Null AND [ApprovedOn] IS Null AND RemoveFromView =0" |
DataKeyNames="TermID,Emp_id,Lname" DataSourceID="DSTerminations"> |
<Columns> |
<telerik:GridButtonColumn ConfirmDialogType="radWindow" ConfirmText="Continue with termination?" |
CommandName="Complete" Text="Terminate" /> |
<telerik:GridButtonColumn ConfirmText="Are you sure you want to cancel?" Text="Cancel" |
CommandName="Cancel" ConfirmDialogType="RadWindow" UniqueName="column" /> |
</Columns> |
</MasterTableView> </RadGrid> |
Base Page Source
<asp:panel id="Panel1" runat="server"></panel>
Base Page Code
Private Property LatestLoadedControlName() As String |
Get |
Return CStr(ViewState("LatestLoadedControlName")) |
End Get |
Set(ByVal value As String) |
ViewState("LatestLoadedControlName") = value |
End Set |
End Property |
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load |
If Not (LatestLoadedControlName Is Nothing) Then |
LoadUserControl(LatestLoadedControlName) |
Else |
LoadUserControl(ctrls(Request.QueryString("Page"))) |
End If |
End Sub |
Public Sub LoadUserControl(ByVal controlName As String) |
If Not (LatestLoadedControlName Is Nothing) Then |
Dim previousControl As Control = Panel1.FindControl(LatestLoadedControlName.Split("."c)(0)) |
If Not (previousControl Is Nothing) Then |
Me.Panel1.Controls.Remove(previousControl) |
End If |
End If |
Dim userControlID As String = controlName.Split("."c)(0) |
Dim targetControl As Control = Panel1.FindControl(userControlID) |
If targetControl Is Nothing Then |
Dim userControl As UserControl = CType(Me.LoadControl(controlName), UserControl) |
'slashes and tildes are forbidden |
userControl.ID = userControlID.Replace("/", "").Replace("~", "") |
Me.Panel1.Controls.Add(userControl) |
LatestLoadedControlName = controlName |
End If |
End Sub |
Function ctrls(ByVal ItemName As String) As String |
Dim x As String = "" |
Select Case ItemName |
Case "Terminations" |
x = "TerminationRequests.ascx" |
Case Else |
x = "DefaultCtrl.ascx" |
End Select |
Return x |
End Function |