Here is my situation, I have a UserControl that has a simple Image, Label and a RadToolTipManager that gets the tooltip info via a WebService for both the Image and the Label. This UserControl is used on a RadGrid that goes inside an asp:UpdatePanel on a page Default.aspx. Inside the UpdatePanel I also have a RadTreeView that updates the content of the Grid on the onNodeClick event and the Default.aspx implements a MasterPage that has the asp:ScriptManager.
Great, so the on the Load of the Default.aspx page I load the TreeView and force the onNodeClick of the RootNode so the Grid is populated too. Until this point all works fine, the control displays the information fine and the RadToolTipManager shows the tooltip info from the WebService also fine.
The problem comes when I click on a different Node from the TreeView to and I reload the Grid contents causing the error:
“Cannot unregister UpdatePanel with ID 'RadToolTipManager1RTMPanel' since it was not registered with the ScriptManager. This might occur if the UpdatePanel was removed from the control tree and later added again, which is not supported.
Parameter name: updatePanel”
This error occur on the Grid.DataBind() line on the Default.aspx page.
I have a simple solution that replicates the problem but can't upload the files here, so will put some snippets below...
I already tried to use ScriptManagerProxy on both the Default.apsx and the Control.ascx, also tried to use the RadAjaxPanel instead of the UpdatePanel or using RadAjaxManager and RadAjaxManagerProxy and follow both (the only ones I could find) treads Compatibility with .NET 3.5 UpdatePanel? and RadAjaxManager initialized too late in the page life cycle but nothing changed.
My last try was to Register the RadToolTipManager programmatically on the control by getting the ScriptManager Instance but if I do that I get the error on the first page load instead.
Well, I am quite stuck with this situation now, and because of business requirements the ToolTip on this particular page is really important for the App. Anyone has any ideas on how to fix this?
Site.Master:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="AjaxRadTooltipError.Site" %> |
<!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></title> |
<asp:ContentPlaceHolder ID="head" runat="server"> |
</asp:ContentPlaceHolder> |
</head> |
<body> |
<form id="form1" runat="server"> |
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" ScriptMode="Release"> |
<Services></Services> |
<Scripts></Scripts> |
</asp:ScriptManager> |
<div> |
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> |
</asp:ContentPlaceHolder> |
</div> |
</form> |
</body> |
</html> |
Default.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AjaxRadTooltipError.Default" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<%@ Register src="Control.ascx" tagname="Control" tagprefix="uc1" %> |
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> |
</asp:Content> |
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> |
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> |
<ContentTemplate> |
<telerik:RadTreeView ID="RadTreeView1" runat="server" OnNodeClick="RadTreeView1_NodeClick"> |
</telerik:RadTreeView> |
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false"> |
<MasterTableView> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px" /> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px" /> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridTemplateColumn AllowFiltering="false" Resizable="true" HeaderText="Name" UniqueName="ItemName" ItemStyle-Width="300px"> |
<ItemTemplate> |
<uc1:Control ID="Control1" runat="server" /> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
</Columns> |
</MasterTableView> |
</telerik:RadGrid> |
</ContentTemplate> |
</asp:UpdatePanel> |
</asp:Content> |
Default.aspx.cs:
protected void Page_Load(object sender, EventArgs e) { |
if (!IsPostBack) |
LoadTreeView(); |
} |
protected void LoadTreeView() { |
RadTreeNode Node = new RadTreeNode(); |
Node.Text = "Root Node"; |
Node.Value = "0"; |
for (int count = 1; count <= 10; count++) { |
RadTreeNode SubNode = new RadTreeNode(); |
SubNode.Text = "Node " + count.ToString(); |
SubNode.Value = count.ToString(); |
Node.Nodes.Add(SubNode); |
} |
RadTreeView1_NodeClick(this, new RadTreeNodeEventArgs(Node)); |
RadTreeView1.Nodes.Add(Node); |
} |
protected void RadTreeView1_NodeClick(object sender, RadTreeNodeEventArgs e) { |
List<string> myDummyList = new List<string>(); |
for (int count = 0; count <= 2 + Convert.ToInt32(e.Node.Value); count++) { |
myDummyList.Add(count.ToString()); |
} |
RadGrid1.DataSource = myDummyList; |
RadGrid1.DataBind(); // Error happens here! |
} |
Control.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Control.ascx.cs" Inherits="AjaxRadTooltipError.Control" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<asp:Panel ID="Panel1" runat="server"> |
<asp:Image ID="Image1" runat="server" ImageUrl="~/ObjectItem_Page.gif" /> |
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> |
</asp:Panel> |
<telerik:RadToolTipManager ID="RadToolTipManager1" runat="server"> |
<WebServiceSettings Path="~/Service_GetInfo.asmx" Method="GetResourceToolTip" /> |
<TargetControls> |
<telerik:ToolTipTargetControl TargetControlID="Image1" /> |
<telerik:ToolTipTargetControl TargetControlID="Label1" /> |
</TargetControls> |
</telerik:RadToolTipManager> |
Cheers,
Claiton Lovato
I setup a basic masterpage and added a RadFormDecorator with decoratedcontrols="all". I then create a new webform from the masterpage and run the web project but labels are not styled. Other web controls are styled.
What am I missing? here is the simple master page:
You can notice the label within (<
div
id
=
"header"
>
) is not styled.
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
<!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
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=iso-8859-1"
/>
<
title
>Untitled Document</
title
>
<
style
type
=
"text/css"
>
html, body
{
height: 100%;
}
#container
{
min-height: 100%;
margin-bottom: -20px;
position: relative;
}
#footer
{
height: 20px;
position: relative;
}
.clearfooter
{
height: 20px;
clear: both;
}
</
style
>
</
head
>
<
body
leftmargin
=
"0"
topmargin
=
"0"
>
<
telerik:RadFormDecorator
ID
=
"RadFormDecorator1"
runat
=
"server"
DecoratedControls
=
"All"
Skin
=
"Office2010Black"
/>
<
div
id
=
"container"
>
<
form
runat
=
"server"
id
=
"frmMasterPage"
>
<
telerik:RadScriptManager
ID
=
"rsmMasterPage"
runat
=
"server"
>
</
telerik:RadScriptManager
>
<
div
id
=
"header"
><
asp:Label
runat
=
"server"
ID
=
"lblHeader"
Text
=
"This is the header"
></
asp:Label
></
div
>
<
div
id
=
"nav"
>
<
telerik:RadMenu
ID
=
"RadMenu1"
runat
=
"server"
>
<
Items
>
<
telerik:RadMenuItem
runat
=
"server"
Text
=
"Reporting"
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
runat
=
"server"
Text
=
"Maintenance"
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
runat
=
"server"
Text
=
"Administration"
>
</
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadMenu
>
</
div
>
<
div
id
=
"content"
><
asp:ContentPlaceHolder
ID
=
"cphContent"
runat
=
"server"
></
asp:ContentPlaceHolder
></
div
>
<
div
class
=
"clearfooter"
>
</
div
>
</
form
>
</
div
>
</
body
>
</
html
>
<
telerik:RadWindowManager
ID
=
"RadWindowManager1"
runat
=
"server"
Overlay
=
"true"
>
<
Windows
>
<
telerik:RadWindow
ID
=
"RadWindow1"
runat
=
"server"
Animation
=
"Fade"
Behavior
=
"None"
VisibleOnPageLoad
=
"false"
Behaviors
=
"Close"
Modal
=
"true"
Width
=
"490"
Height
=
"565"
DestroyOnClose
=
"true"
VisibleStatusbar
=
"false"
KeepInScreenBounds
=
"true"
>
<
ContentTemplate
>
...
<
script
type
=
"text/javascript"
>
try {
Telerik.Web.UI.RadAsyncUpload.Modules.Silverlight.isAvailable = function () { return false; }
} catch (e) { }
</
script
>
<
telerik:RadAsyncUpload
ID
=
"fuDocument"
runat
=
"server"
MaxFileInputsCount
=
"1"
ReadOnlyFileInputs
=
"true"
OnClientFileUploaded
=
"triggerRefresh"
OnClientFileUploadRemoving
=
"triggerCancel"
MaxFileSize
=
"4194304"
OnClientFileSelected
=
"triggerSelected"
OnClientValidationFailed
=
"fileValidationFailed"
Localization-Select
=
""
>
</
telerik:RadAsyncUpload
>
...
</
ContentTemplate
>
</
telerik:RadWindow
>
Hi All
Strange one this, if you goto www.weddingdazedirectory.co.uk I'll do my best to explain.
The left hand menu is a user control in a Masterpage
If you make a selection form the left hand menu, the page posts back, but nothing happens.
Now select Advice - Advertorials (I know some in=mages are missing) and make a selection from the left hand menu, you get some results.
Now go back to the home page and make a selection, it now works!
Does anyone have any idea as to what is going on?
Protected Sub CategoryTree()
'CategoryList
Dim cl As New CoreData
Dim cl_ds As Data.DataTable = cl.CategoryByCounty(0)
With mnuCategory
.Items.Clear()
.DataSource = cl_ds
.DataFieldID = "Category_ID"
.DataFieldParentID = "ParentCategory_ID"
.DataTextField = "Category"
.DataValueField = "Category_ID"
'.DataNavigateUrlField = "Link"
.DataBind()
End With
End Sub
Protected Sub mnuCategory_ItemClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadMenuEventArgs) Handles mnuCategory.ItemClick
Dim Category_ID As Int32 = e.Item.Value
Page.Response.Redirect("~/Display/County.aspx?Cat=" & Category_ID)
End Sub
Hi,
In my ASP .NET application I use a tabpanel to let the user open
multiple subject from a quickbar, like browser tabs but then inside my
application. The content of the subjects is dynamically created
server-side. To remain the viewstate of inactive tabpages
I need to rebuild the content of the inactive tabpages every request
again. When the user opens more subject very request to the server will
take longer and longer because of this.
I'm looking for an advanced solution to save the viewstate of inactive tabpages over multiple requests on the active tabpage. When an inactive tabpage becomes active again I want to put the saved viewstate of this tabpage back in the viewstate of the whole page. This can give my application a performance boost when I do not need to rebuild every inactive tabpage on every request to the server.
I have red a lot about the ASP viewstate but I did not found a
solution for this yet. Any suggestions how I can accomplish this?
Protected Sub btnUpload_Click(sender As Object, e As System.EventArgs) Handles btnUpload.Click
BindValidResults()
End Sub
Protected Sub BindValidResults()
If RadUpload1.UploadedFiles.Count > 0 Then
For Each file As UploadedFile In RadUpload1.UploadedFiles
Dim bytes(file.ContentLength - 1) As Byte
file.InputStream.Read(bytes, 0, file.ContentLength)
Dim a As New Model
a.ModelImageAdd(Model_ID, file.GetName(), bytes, Owner_GUID)
Next
End If
End Sub
Public Function ModelImageAdd(ByVal _Model_ID As String, _ImageName As String, ByVal _ImageData As Byte, ByVal _Owner As Guid) As Boolean
Try
Using sqlConn As New SqlConnection(ConfigurationManager.ConnectionStrings("cnModelDB").ToString)
Using sqlCmd As New SqlCommand()
With sqlCmd
.CommandType = CommandType.StoredProcedure
.CommandText = "ModelImageAdd"
.Connection = sqlConn
.Parameters.Add("@Model_ID", SqlDbType.Int).Value = _Model_ID
.Parameters.Add("@ImageName", SqlDbType.VarChar, 75).Value = _ImageName
.Parameters.Add("@ImageData", SqlDbType.Binary).Value = _ImageData
.Parameters.Add("@Owner", SqlDbType.UniqueIdentifier).Value = _Owner
.Parameters.Add("@ReturnValue", SqlDbType.Int).Direction = ParameterDirection.ReturnValue
.Connection.Open()
.ExecuteScalar()
End With
If sqlCmd.Parameters("@ReturnValue").Value = 0 Then
ModelImageAdd = 1
Else
ModelImageAdd = sqlCmd.Parameters("@ReturnValue").Value
End If
End Using
End Using
Catch ex As Exception
ErrorLog.Log(String.Format("Model:ModelAdd(): {0}", ex.Message))
Return False
End Try
End Function
<asp:ListView ID="TeachersList" runat="server" OnItemCommand="ShowNumber_ItemCommand">
<ItemTemplate >
.
.
.
<asp:LinkButton ID="ShowNumberLinkButton" runat="server" CommandName="ShowNumber" CommandArgument='<%# Eval("UserID") %>' Text=" "></asp:LinkButton>
.
.
.
Protected Sub ShowNumber_ItemCommand(ByVal sender As Object, ByVal e As ListViewCommandEventArgs)
For Each row In TeachersList.Items
For Each control In row.Controls
if control.CommandArgument = UserID Then
control.Text = "bla bla"
.
.
.
Please help, thanks