I am dynamically creating a floating dock with a fixed ID and fixed UniqueName in the Page_Init event. When I click on a button inside an UpdatePanel to make a callback, I am creating a new dock object, with the same ID and UniqueName, in hope that it will update the existing dock on the client with the new properties.
When outside updatePanel, this works fine (the existing dock gets updated on the client).
When inside updatePanel, and docked, this works fine.
When inside updatePanel, and undocked, I get 2 docks on the client.
| protected void Page_Init(object sender, EventArgs e) |
| { |
| if (!IsPostBack) |
| { |
| RadDock dock = new RadDock(); |
| RadDockZone1.Controls.Add(dock); |
| dock.Undock(); // comment this out to make it docked |
| dock.Text = DateTime.Now.ToString(); |
| dock.ID = "FIXED"; |
| dock.UniqueName = "FIXED"; |
| } |
| } |
| protected void Button1_Click(object sender, EventArgs e) |
| { |
| RadDock dock = new RadDock(); |
| RadDockZone1.Controls.Add(dock); |
| dock.Undock(); // comment this out to make it docked |
| dock.Text = DateTime.Now.ToString(); |
| dock.ID = "FIXED"; |
| dock.UniqueName = "FIXED"; |
| } |
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> |
| <%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head runat="server"> |
| <title>Untitled Page</title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <div> |
| </div> |
| <asp:ScriptManager ID="ScriptManager1" runat="server"> |
| </asp:ScriptManager> |
| <asp:UpdatePanel ID="UpdatePanel1" runat="server"> |
| <ContentTemplate> |
| <telerik:RadDockLayout ID="RadDockLayout1" Runat="server"> |
| <telerik:RadDockZone ID="RadDockZone2" Runat="server" Height="300px" |
| Width="300px"> |
| </telerik:RadDockZone> |
| <telerik:RadDockZone ID="RadDockZone1" Runat="server" Height="300px" |
| Width="300px"> |
| </telerik:RadDockZone> |
| </telerik:RadDockLayout> |
| <asp:Button ID="Button1" runat="server" onclick="Button1_Click" |
| Text="Make Callback" /> |
| </ContentTemplate> |
| </asp:UpdatePanel> |
| </form> |
| </body> |
| </html> |
I am having problems with trying to set focus to a textbox control after an Ajax call. Here is the rub, the control is marked as being updated in the call. The error message I keep getting is "Unexpected call to method or property access".
This is using AjaxManagerProxy from a content page as follows.
| <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"></asp:ScriptManagerProxy> |
| <telerik:RadAjaxManagerProxy ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="btnReset"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="editCustNo" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManagerProxy> |
The server button handler looks like this:
| protected void btnReset_Click(object sender, EventArgs e) { |
| // Reset the page controls to their default state. |
| editCustNo.Text = string.Empty; |
| RegisterClientPageControls(editCustNo); |
| _RadAjaxMgr.ResponseScripts.Add("editCustNo.focus();"); |
| } |
| protected void RegisterClientPageControls(params Control[] controls) { |
| Type typ = this.GetType().BaseType; |
| StringBuilder sb = new StringBuilder(); |
| sb.AppendLine(); |
| sb.AppendLine(); |
| foreach(Control ctrl in controls) |
| if(ctrl != null) |
| sb.AppendFormat("var {0} = document.getElementById('{1}');\n", ctrl.ID, ctrl.ClientID); |
| sb.AppendLine(); |
| if(IsAjaxRequest == true) { |
| _RadAjaxMgr.ResponseScripts.Add(sb.ToString()); |
| return; |
| } |
| this.ClientScript.RegisterStartupScript(typ, Guid.NewGuid().ToString(), sb.ToString(), true); |
| } |
| _RadAjaxMgr.ResponseScripts.Add("editCustNo.focus();"); |
| // ... with ... |
| _RadAjaxMgr.ResponseScripts.Add(string.Format(SetFocus('{0}');", editCustNo.ClientID)); |
| function SetFocus(elementName) { |
| var ctrl = document.getElementById(elementName); |
| if(ctrl.focus) |
| ctrl.focus(); |
| } |
.rade_toolbar.Default .IESpell
{
background-image: url(http://www.telerik.com/DEMOS/ASPNET/RadControls/Editor/Skins/Default/buttons/CustomDialog.gif);
}
.rade_toolbar.WebBlue .IESpell
{
background-image: url(http://www.telerik.com/DEMOS/ASPNET/RadControls/Editor/Skins/Default/buttons/CustomDialog.gif);
}
This One WOrks:
<telerik:RadEditor ID="ContentBody" runat="server" ToolsFile="/Scripts/ToolsFile.xml" OnClientLoad="OnClientLoad" Width="700px" Height="345px">
</telerik:RadEditor>
This One Doesn't Work
<telerik:RadEditor ID="ContentBody" runat="server" ToolsFile="/Scripts/ToolsFile.xml" Skin="WebBlue" SkinID="WebBlue" OnClientLoad="OnClientLoad"
Width="700px" Height="345px">
</telerik:RadEditor>

| <telerik:RadTreeView ID="rtv" runat="server" Skin="Default" LoadingStatusPosition="BeforeNodeText" |
| EnableDragAndDrop="True" onnodedrop="rtv_NodeDrop"> |
| <collapseanimation duration="100" type="OutQuint" /> |
| <expandanimation duration="100" type="OutQuart" /> |
| </telerik:RadTreeView> |
Browser is Internet Explorer 7, the drop down seems to work as expected in Firefox
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" > |
| <head runat="server"> |
| <title>Untitled Page</title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <telerik:RadSplitter ID="RadSplitter2" runat="server"> |
| <telerik:RadPane ID="RadPane3" runat="server"> |
| <telerik:RadSlidingZone ID="RadSlidingZone2" runat="server" ClickToOpen="True"> |
| <telerik:RadSlidingPane ID="RadSlidingPane2" runat="server" Title="moo"> |
| <telerik:RadComboBox ID="RadComboBox2" runat="server" Width="100%"> |
| <CollapseAnimation Duration="200" Type="OutQuint" /> |
| <ExpandAnimation Type="OutQuart" /> |
| <Items> |
| <telerik:RadComboBoxItem Text="moo 1" /> |
| <telerik:RadComboBoxItem Text="moo 2" /> |
| <telerik:RadComboBoxItem Text="moo 3" /> |
| <telerik:RadComboBoxItem Text="moo 4" /> |
| </Items> |
| </telerik:RadComboBox> |
| </telerik:RadSlidingPane> |
| </telerik:RadSlidingZone> |
| </telerik:RadPane> |
| <telerik:RadSplitBar ID="RadSplitBar2" runat="server" /> |
| <telerik:RadPane ID="RadPane4" runat="server"> |
| </telerik:RadPane> |
| </telerik:RadSplitter> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| </form> |
| </body> |
| </html> |