Protected Sub rtvReports_ContextMenuItemClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadTreeViewContextMenuEventArgs) Select Case e.Node.Level Case 1 'Not important to example Case 2 Dim ReportType As String = e.Node.ParentNode.Text Dim ReportName As String = e.Node.Text Dim Logid As String = e.Node.Value Dim ClientID As String = Session("ClientID") Select Case e.MenuItem.Value Case "Delete" Session("CurrentReportTreeNode") = e.Node.ParentNode lbDeleteReportType.Text = e.Node.ParentNode.Text lbDeleteReportName.Text = e.Node.Text lbDeleteLogID.Text = e.Node.Value RadWindowManager1.RadConfirm("Delete Report: " & lbDeleteReportName.Text, "DeleteReportcallback", 300, 100, Nothing, "Delete Report Confirmation") Exit Select End Select End SelectEnd SubHere is the client side function DeleteReportCallBack which seems to work fine:
function DeleteReportcallback(arg) { if (arg == true) { __doPostBack("ctl00$ContentPlaceHolder1$btnDelete", ""); }}Here is the asp button:
<asp:button id="btnDelete" runat="server" Text="" height=0 width="0" style="background-color:white; border-color:White; border-width:0" OnCLick="btnDelete_Click" />Here is the button handler and the subroutine that rebuilds the nodes at that level:
Protected Sub btnDelete_Click() Dim ReportType As String = lbDeleteReportType.Text Dim ReportName As String = lbDeleteReportName.Text Dim LogID As String = lbDeleteLogID.Text DeleteReport(LogID, ReportName, ReportType) Dim CurrentNode As RadTreeNode = Session("CurrentReportTreeNode") LoadReports(CurrentNode)End SubSub LoadReports(curnode As RadTreeNode) Dim ReportType As String = curnode.Text Dim ReportTypeParent As String = curnode.ParentNode.Text Dim CLientID As String = Session("ClientID") Dim dt As New DataTable If curnode.Nodes.Count > 0 Then For I As Integer = curnode.Nodes.Count - 1 To 0 Step -1 curnode.Nodes(I).Remove() Next End If dt = BindChartNames(ReportType, CLientID) 'Gets the relevant reports from the database If dt IsNot Nothing And dt.Rows.Count > 0 Then dt.DefaultView.Sort = "ReportName ASC" For Each row As DataRow In dt.Rows Dim node As New RadTreeNode() node.Text = row("ReportName").ToString() node.Value = row("LogID").ToString() node.ContextMenuID = "ReportMenu" node.HoveredCssClass = "TreeHover" curnode.Nodes.Add(node) Next curnode.Expanded = True curnode.ExpandMode = TreeNodeExpandMode.ClientSide End IfEnd SubAnd here is the ajax manager and the tree definition (minus some context menus not pertinent to my question):
<telerik:RadAjaxManager runat="server" ID="RadAjaxManager1" > <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rtvReports"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rtvReports" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="pnlDetails" /> <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" /> <telerik:AjaxUpdatedControl ControlID="RadTabStrip1" /> <telerik:AjaxUpdatedControl ControlID="pnlReportType" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="btnOverwrite" > <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rtvReports" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager><telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" Skin="Office2010Black" InitialDelayTime="400" /> <telerik:RadTreeView ID="rtvReports" runat="server" OnNodeExpand="rtvReports_NodeExpand" OnContextMenuItemClick="rtvReports_ContextMenuItemClick" Skin="Office2010Silver" OnNodeClick="rtvReports_NodeClick" OnPreRender="rtvReports_PreRender"> <ContextMenus> <telerik:RadTreeViewContextMenu runat="server" ID="ReportMenu" ClickToOpen="True"> <Items> <telerik:RadMenuItem Text="Edit" Value="Edit"> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Run" Value="Run"> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Schedule" Value="Schedule"> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Delete" Value="Delete"> </telerik:RadMenuItem> </Items> </telerik:RadTreeViewContextMenu> </ContextMenus> </telerik:RadTreeView>One further note on this issue: I have a Refresh function on the parent node to the reports in the context menu. And after I delete a report node and the node is still there, I run the refresh command from the parent node and it calls the same LoadReports subroutine and it works fine.
Thanks for any help on this.
LoadReports
Imgscript += "<script type=\"text/javascript\">"; Imgscript += "function changeImageManager(editor, args) {"; Imgscript += "if (args.get_commandName() == \"ImageManager\" || args.get_commandName() == \"InsertImage\" ) {"; Imgscript += "var callbackFunction = function (sender, args) {"; Imgscript += "var result = args.get_value();"; Imgscript += "$('#" + owtxt.ClientID + "').val(result.src);"; Imgscript += "result = Telerik.Web.UI.Editor.Utils.getOuterHtml(result);"; Imgscript += "editor.pasteHtml(result, \"ImageManager\");"; Imgscript += "};"; Imgscript += "args.set_callbackFunction(callbackFunction);"; Imgscript += "}";use: "result.src" to get Image Url. from imageManager/insertImage

namespace MCMwebservice{` [WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)] [ScriptService]public class Service1 : System.Web.Services.WebService{ [WebMethod] public bool getBool(RadTreeView TreeSites, string Demogs) { //dummy method for now return true; } }}Metadata contains a reference that cannot be resolved: 'http://localhost:49304/Service1.asmx'. There was an error downloading 'http://localhost:49304/Service1.asmx/_vti_bin/ListData.svc/$metadata'.The request failed with the error message:
Request format is unrecognized for URL unexpectedly ending in '/_vti_bin/ListData.svc/$metadata'.
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <link type="text/css" href="siteStyle.css" rel="stylesheet" /> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> //Put your JavaScript code here. </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"> </telerik:RadAjaxLoadingPanel> <div id="wraper"> <div id="header"> <telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="True"></telerik:RadSkinManager> </div> <telerik:RadMenu ID="menu" runat="server" Width="100%" ClientIDMode="Static"> <Items> <telerik:RadMenuItem runat="server" Text="Home" NavigateUrl="~/Home.aspx"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="Inventory" NavigateUrl="~/Inventory.aspx"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="My Account"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="Support" NavigateUrl="~/Support.aspx"> <Items> <telerik:RadMenuItem runat="server" Text="FAQ"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="Shipping"> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="Payments"> </telerik:RadMenuItem> </Items> <GroupSettings Flow="Horizontal" /> </telerik:RadMenuItem> <telerik:RadMenuItem runat="server" Text="Cart"> <Items> <telerik:RadMenuItem runat="server" Text="SubCart"> <ItemTemplate> <telerik:RadButton ID="RadButton1" runat="server" Text="1"></telerik:RadButton> <telerik:RadGrid ID="grdCartItems" runat="server"></telerik:RadGrid> </ItemTemplate> </telerik:RadMenuItem> </Items> </telerik:RadMenuItem> </Items> </telerik:RadMenu> <div style="clear: both"></div> <div id="masterContainer"> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> <div id="footer"></div> </div> </form></body></html>Imports Telerik.Web.UIImports System.DataPartial Class Inventory Inherits System.Web.UI.Page Dim grid As New RadGrid Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init CreateGrid() End Sub Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If IsPostBack Then Exit Sub Dim grid1 As RadGrid = CType(PlaceHolder1.FindControl("RadGrid1"), RadGrid) Dim ajaxMenager As RadAjaxManager = Master.FindControl("RadAjaxManager1") ajaxMenager.AjaxSettings.AddAjaxSetting(grid1, grid1) End Sub Public Sub CreateGrid() grid = New RadGrid grid.ID = "RadGrid1" grid.Width = Unit.Percentage(100) grid.PageSize = 15 grid.AllowPaging = True grid.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric grid.AutoGenerateColumns = False grid.ClientIDMode = UI.ClientIDMode.Static grid.MasterTableView.Width = Unit.Percentage(100) grid.MasterTableView.DataKeyNames = New String() {"ID"} Dim boundColumn As New GridBoundColumn() boundColumn = New GridBoundColumn() boundColumn.DataField = "Code" boundColumn.HeaderText = "Code" grid.MasterTableView.Columns.Add(boundColumn) Dim tableViewOrders As GridTableView tableViewOrders = New GridTableView(grid) tableViewOrders.Width = Unit.Percentage(100) boundColumn = New GridBoundColumn() boundColumn.DataField = "Code" boundColumn.HeaderText = "Code" tableViewOrders.Columns.Add(boundColumn) Dim toCartCollumn As New GridTemplateColumn toCartCollumn = New GridTemplateColumn toCartCollumn.ItemTemplate = New MyTemplate() toCartCollumn.UniqueName = "TemplateColumn1" toCartCollumn.DataField = "Code11" tableViewOrders.Columns.Add(toCartCollumn) grid.MasterTableView.DetailTables.Add(tableViewOrders) AddHandler grid.NeedDataSource, AddressOf RadGrid1_NeedDataSource AddHandler grid.DetailTableDataBind, AddressOf RadGrid1_DetailTableDataBind AddHandler grid.ItemCommand, AddressOf RadGrid1_ItemCommand AddHandler grid.ItemCreated, AddressOf RadGrid1_ItemCreated PlaceHolder1.Controls.Add(grid) End Sub Private Sub RadGrid1_DetailTableDataBind(ByVal source As Object, ByVal e As GridDetailTableDataBindEventArgs) Dim list As List(Of Listing) = grid.DataSource Dim dataItem As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem) Dim id As Integer = dataItem.GetDataKeyValue("ID") Dim detailList = (From l In list Where l.ID = id Select l.Items).First.ToList e.DetailTableView.DataSource = detailList End Sub Public Function CreateListings(itemsCount As Integer) As List(Of Listing) Dim list As New List(Of Listing) For i = 0 To itemsCount list.Add(New Listing(i)) Next Return list End Function Protected Sub RadGrid1_ItemCommand(sender As Object, e As GridCommandEventArgs) If e.CommandName = "AddToCart" Then Dim menu As RadMenu = Master.FindControl("menu") Dim buttonToUpdate As RadButton = menu.FindItemByText("SubCart").FindControl("RadButton1") buttonToUpdate.Text = CInt(buttonToUpdate.Text) + 1 End If End Sub Protected Sub RadGrid1_ItemCreated(sender As Object, e As GridItemEventArgs) If TypeOf e.Item Is GridDataItem Then If e.Item.DataItem Is Nothing Then Exit Sub If e.Item.DataItem.GetType.Name = "ListingItem" Then Dim dataItem As GridDataItem = TryCast(e.Item, GridDataItem) Dim tc As TableCell = dataItem("TemplateColumn1") Dim button As Button = tc.FindControl("ibtnAddToCart") Dim ajaxMenager As RadAjaxManager = Master.FindControl("RadAjaxManager1") Dim menu As RadMenu = Master.FindControl("menu") Dim buttonToUpdate = menu.FindItemByText("SubCart").FindControl("RadButton1") ajaxMenager.AjaxSettings.AddAjaxSetting(button, buttonToUpdate) End If End If End Sub Protected Sub RadGrid1_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) grid.DataSource = CreateListings(15) End Sub Private Class MyTemplate Implements ITemplate Protected ibtnAddToCart As Button Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements ITemplate.InstantiateIn ibtnAddToCart = New Button() ibtnAddToCart.ID = "ibtnAddToCart" AddHandler ibtnAddToCart.DataBinding, AddressOf boolValue_DataBinding ibtnAddToCart.CommandName = "AddToCart" container.Controls.Add(ibtnAddToCart) End Sub Sub boolValue_DataBinding(ByVal sender As Object, ByVal e As EventArgs) Dim cBox As Button = DirectCast(sender, Button) Dim container As GridDataItem = DirectCast(cBox.NamingContainer, GridDataItem) Dim listingitem = DirectCast(container.DataItem, ListingItem) cBox.Text = listingitem.Code End Sub End ClassEnd ClassMetadata contains a reference that cannot be resolved: 'http://localhost:49304/Service1.asmx'. There was an error downloading 'http://localhost:49304/Service1.asmx/_vti_bin/ListData.svc/$metadata'.
The request failed with the error message:
Request format is unrecognized for URL unexpectedly ending in '/_vti_bin/ListData.svc/$metadata'.This is a simplified version of the web service class I'm writing:
namespace MCMwebservice{`[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)][ScriptService]public class Service1 : System.Web.Services.WebService{[WebMethod]public bool getBool(RadTreeView TreeSites, string Demogs) { //dummy method for nowreturn true;}}
If I remove the telerik radtreeview parameter then it will update, so I know that's the issue. The both projects have the telerik.web.ui and skins dll. Is there a certain reference or tag I need to add to my main project or in my web.config? Please Help!
thanks
Will
<telerik:RadAjaxLoadingPanel ID="ajaxPanel" runat="server" /> <telerik:RadAjaxManager runat="server" DefaultLoadingPanelID="ajaxPanel"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="gridEntreprises"> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="chkActifUniquement"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="gridEntreprises" LoadingPanelID="ajaxPanel" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager>