
Protected Sub RadToolTipmanager_AjaxUpdate(ByVal sender As Object, ByVal e As ToolTipUpdateEventArgs) Dim roleName As String = e.Value Dim listOfUsersInToolTip As New RadListBox Dim label As New Label listOfUsersInToolTip.Width = 150 listOfUsersInToolTip.Height = 200 If IsUserRole(e.Value) Then Dim sql As String = "select UserId, TeamId from FF_UserTeamMapping where TeamId = (select ID from FF_Team where TeamName = '" & e.Value & "')" Dim dt As DataTable = DNNDB.Query(sql) 'Dim usersList As ArrayList = rc.GetUserRolesByRoleName(DNN.GetPMB(Me).PortalId, roleName) If dt IsNot Nothing And dt.Rows.Count <> 0 Then For Each row As DataRow In dt.Rows Dim nUserId As Integer = row("UserId") Dim userInfo As UserInfo = DotNetNuke.Entities.Users.UserController.GetUserById(DNN.GetPMB(Me).PortalId, nUserId) listOfUsersInToolTip.Items.Add(New RadListBoxItem(userInfo.Username, userInfo.UserID)) Next listOfUsersInToolTip.Sort = RadListBoxSort.Ascending listOfUsersInToolTip.SortItems() RadToolTipManager.Width = "150" RadToolTipManager.Height = "200" RadToolTipManager.Position = ToolTipPosition.TopRight listOfUsersInToolTip.BackColor = Color.DimGray listOfUsersInToolTip.ID = Guid.NewGuid().ToString() listOfUsersInToolTip.ID = Guid.NewGuid().ToString() e.UpdatePanel.ContentTemplateContainer.Controls.Add(listOfUsersInToolTip) End If Else For Each role As RadComboBoxItem In cmbRoleName.Items Dim userInfo As UserInfo = DotNetNuke.Entities.Users.UserController.GetUserByName(DNN.GetPMB(Me).PortalId, e.Value) Dim found = FindUserInTeam(role.Value, userInfo.UserID) If found Then label.Text = e.Value & " belongs to " & role.Text RadToolTipManager.Width = "160" RadToolTipManager.Height = "50" RadToolTipManager.BackColor = Color.DimGray listOfUsersInToolTip.BackColor = Color.DimGray listOfUsersInToolTip.ID = Guid.NewGuid().ToString() e.UpdatePanel.ContentTemplateContainer.Controls.Add(label) Exit For Else label.Text = e.Value & " doesn't belong to any team" RadToolTipManager.Width = "160" RadToolTipManager.Height = "50" RadToolTipManager.BackColor = Color.DimGray listOfUsersInToolTip.BackColor = Color.DimGray listOfUsersInToolTip.ID = Guid.NewGuid().ToString() e.UpdatePanel.ContentTemplateContainer.Controls.Add(label) End If Next End If<%@ Control Language="VB" AutoEventWireup="false" CodeFile="PS_UserJobMapping.ascx.vb" Inherits="PS_UserJobMapping" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><%@ Register TagPrefix="Portal" Namespace="DotNetNuke.Security.Permissions.Controls" Assembly="DotNetNuke" %><link href="module.css" rel="stylesheet" type="text/css" /><telerik:RadCodeBlock runat="server" ID="RadCodeBlock1"> <script type="text/javascript"> //indicates whether the user is currently dragging a listbox item var listBoxDragInProgress = false; //indicates whether the user is currently dragging a tree node var treeViewDragInProgress = false; //select the hovered listbox item if the user is dragging a node function onListBoxMouseOver(sender, args) { if (treeViewDragInProgress) { args.get_item().select(); } } //select the hovered tree node if the user is dragging a listbox item function onTreeViewMouseOver(sender, args) { if (listBoxDragInProgress) { args.get_node().select(); } //////////////// radtooltip code for move over /////////////// var nodeElem = args.get_node(); if (nodeElem.get_level() != 0) { var node = nodeElem.get_textElement(); var tooltipManager = $find("<%= RadToolTipManager.ClientID%>"); //If the user hovers the image before the page has loaded, there is no manager created if (!tooltipManager) return; //Find the tooltip for this element if it has been created var tooltip = tooltipManager.getToolTipByElement(node); //Create a tooltip if no tooltip exists for such element if (!tooltip) { tooltip = tooltipManager.createToolTip(node); tooltip.set_value(nodeElem.get_text()); tooltip.show(); } } } //unselect the item if the user is dragging a node function onListBoxMouseOut(sender, args) { if (treeViewDragInProgress) { args.get_item().unselect(); } } //unselect the node if the user is dragging a listbox item function onTreeViewMouseOut(sender, args) { if (listBoxDragInProgress) { args.get_node().unselect(); } } //indicate that the user started dragging a listbox item function onListBoxDragStart(sender, args) { listBoxDragInProgress = true; } //indicate that the user started dragging a tree node function onTreeViewDragStart(sender, args) { treeViewDragInProgress = true; } //handle the drop of the listbox item function onListBoxDropping(sender, args) { //indicate that the user stopped dragging listBoxDragInProgress = false; document.body.style.cursor = ""; //restore the cursor to the default state document.body.style.cursor = ""; //get the html element on which the item is dropped var target = args.get_htmlElement(); //if dropped on the listbox itself return. if (isOverElement(target, "<%= lstUsers.ClientID %>")) { return; } //check if dropped on the treeview var target = isOverElement(target, "<%= tvUsersInJobStages.ClientID %>"); //if not cancel the dropping event so it does not postback if (!target) { args.set_cancel(true); return; } //the item was dropped on the treeview - set the htmlElement. //it can be later accessed via the HtmlElementID property of the RadListBox args.set_htmlElement(target); } //handle the drop of the tree node function onTreeViewDropping(sender, args) { //indicate that the user stopped dragging treeViewDragInProgress = false; //restore the cursor to the default state document.body.style.cursor = ""; //get the html element on which the node is dropped var target = args.get_htmlElement(); //if dropped on the treeview itself return. if (isOverElement(target, "<%= tvUsersInJobStages.ClientID %>")) { return; } //check if dropped on the listbox var target = isOverElement(target, "<%= lstUsers.ClientID %>"); //if not cancel the dropping event so it does not postback if (!target) { args.set_cancel(true); return; } //the node was dropped on the listbox - set the htmlElement. //it can be later accessed via the HtmlElementID property of the RadTreeNodeDragDropEventArgs args.set_htmlElement(target); } //chech if a given html element is a child of an element with the specified id function isOverElement(target, id) { while (target) { if (target.id == id) break; target = target.parentNode; } return target; } function checkDropTargets(target) { if (isOverElement(target, "<%= lstUsers.ClientID %>") || isOverElement(target, "<%= tvUsersInJobStages.ClientID %>")) { //if the mouse is over the treeview or listbox - set the cursor to default document.body.style.cursor = ""; } else { //else set the cursor to "no-drop" to indicate that dropping over this html element is not supported document.body.style.cursor = "no-drop"; } } //update the cursor if the user is dragging the item over supported drop target - listbox or treeview function onListBoxDragging(sender, args) { checkDropTargets(args.get_htmlElement()); } //update the cursor if the user is dragging the node over supported drop target - listbox or treeview function onTreeViewDragging(sender, args) { checkDropTargets(args.get_htmlElement()); } function CloseActiveToolTip() { var tooltip = Telerik.Web.UI.RadToolTip.getCurrent(); if (tooltip) tooltip.hide(); } </script></telerik:RadCodeBlock><fieldset id="fsMain" runat="server"> <legend class="fieldsetLegend" id="fslgndMain"> <asp:Label ID="lblUserJobMapping" runat="server" Text="Resource Management" /> </legend> <telerik:RadAjaxLoadingPanel ID="alpUserJobMapping" runat="server" Height="75px" MinDisplayTime="5" Width="75px"> <asp:Image ID="Image1" runat="server" AlternateText="Loading..." ImageUrl="~/Portals/0/Images/LoadingAjax.gif" /> </telerik:RadAjaxLoadingPanel> <telerik:RadAjaxPanel ID="rapUserJobMapping" RequestQueueSize="5" runat="server" Width="100%" EnableOutsideScripts="True" HorizontalAlign="NotSet" ScrollBars="None" LoadingPanelID="alpUserJobMapping"> <table id="sub1" border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="30%"> <telerik:RadComboBox ID="cmbRoleName" EmptyMessage="- please select team -" runat="server" AutoCompleteSeparator="true" HighlightTemplatedItems="true" AllowCustomText="true"> <%-- <Items> <telerik:RadComboBoxItem Value="0" Text="-- Select All Users --"> </Items> --%> <ItemTemplate> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <asp:CheckBox runat="server" ID="chkRole" AutoPostBack="true" Text="" OnCheckedChanged="chkRole_OnCheckedChanged" /> </td> </tr> </table> </ItemTemplate> </telerik:RadComboBox> </td> <td width="20%"> </td> <td> </td> </tr> <%-- <tr> <td width="20%"> <asp:CheckBox runat="server" ID="chkAllPSUsers" Text="Select All PS Users" AutoPostBack="true" OnCheckedChanged="chkAllPSUsers_OnCheckedChanged" /> </td> </tr> --%> </table> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="30%"> <asp:Label ID="lblUser" runat="server" Text="Resources"></asp:Label> </td> <td width="20%"> </td> <td> <asp:Label ID="Label2" runat="server" Text="Stages"></asp:Label> </td> </tr> </table> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> <telerik:RadToolTipManager HideDelay="1" EnableViewState="false" RelativeTo="Element" ID="RadToolTipManager" runat="server" EnableShadow="true" OffsetX="15" HideEvent="LeaveToolTip" BackColor="#ffff66" Position="TopRight" OnAjaxUpdate="RadToolTipmanager_AjaxUpdate" Style="font-size: 18px; text-align: center; font-family: Arial;" RenderInPageRoot="true"> </telerik:RadToolTipManager> </td> </tr> <tr> <td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="20%"> <telerik:RadListBox runat="server" ID="lstUsers" Sort="Ascending" EnableDragAndDrop="True" skinn="Vista" Width="160px" AllowReorder="true" Height="200px" OnClientDropping="onListBoxDropping" OnClientDragStart="onListBoxDragStart" OnClientMouseOver="onListBoxMouseOver" BorderColor="#ffff66" BackColor="#ffff66" OnClientMouseOut="onListBoxMouseOut" OnClientDragging="onListBoxDragging" OnDropped="lstUsers_ItemDropped"> <ButtonSettings ShowReorder="false" /> </telerik:RadListBox> </td> <td width="20%"> <div style="height: 200px; overflow: auto; width: 100%;"> <telerik:RadTreeView runat="server" ID="tvUsersInJobStages" EnableDragAndDrop="True" OnClientMouseOver="onTreeViewMouseOver" OnClientMouseOut="onTreeViewMouseOut" OnClientNodeDragStart="onTreeViewDragStart" OnClientNodeDropping="onTreeViewDropping" OnNodeDrop="tvUsersInJobStages_NodeDrop" OnClientNodeDragging="onTreeViewDragging" OnContextMenuItemClick="tvUsersInJobStages_ContextMenuItemClick"> <ContextMenus> <telerik:RadTreeViewContextMenu runat="server" ID="HelpDeskMenu" ClickToOpen="True" Skin="Vista"> <Items> <telerik:RadMenuItem Text="Remove From Stage" Value="Remove"> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Remove From All Stages" Value="Remove All"> </telerik:RadMenuItem> </Items> </telerik:RadTreeViewContextMenu> </ContextMenus> </telerik:RadTreeView> </div> </td> </tr> </table> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> <asp:Button ID="btnSave" runat="server" Text="Save" /> <asp:Button ID="btnCancel" runat="server" Text="Cancel" /> </td> </tr> </table> </telerik:RadAjaxPanel></fieldset>
<telerik:RadGrid runat="server" Skin="360Core" EnableEmbeddedSkins="false" ></telerik:RadGrid>
Hello.
I have a problem with RadAutoCompleteBox.EntryAdded server event. I created a user control (.ascx) called PeopleAndMachinesPicker with RadAutoCompleteBox (InputType="Token") in it.
RadAutoCompleteBox causes full page postback when server-side EntryAdded event handler is set. I tried to wrap my PeopleAndMachinesPicker control with UpdatePanel, but it causes JavaScript error:
"Microsoft JScript runtime error: Sys.InvalidOperationException: Two components with the same id 'PeopleAndMachinesPicker1_RadAutoCompleteBox2' can't be added to the application."
How can I process server-side EntryAdded event without full page postback? I tried __doPostBack() to update other controls on the page on ClientEntryAdded javascript event handler, but it's not suitable for my PeopleAndMachinesPicker control isolation.
Browser used: IE9 (9.0.8112.16421) 64 bit
Telerik.Web.UI assembly version: 2012.2.1002.35

Imports System.DataImports Telerik.Web.UIPublic Class TestPage Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then Dim dt As New DataTable("MyData") Dim i As Integer = 1 dt.Columns.Add("Key", GetType(Integer)) dt.Columns.Add("Description", GetType(String)) Dim dr As DataRow = dt.NewRow dr("Key") = 1 dr("Description") = "My Data Row" dt.Rows.Add(dr) Me.MyList.DataSource = dt Me.MyList.DataBind() End If End Sub Public Sub MyList_ItemCommand(ByVal sender As Object, ByVal e As GridCommandEventArgs) If (e.CommandName = RadGrid.ExpandCollapseCommandName) Then If Not e.Item.Expanded Then AdjustPageAvailability(False) End If End If End Sub Public Sub MyList_ItemDataBound(ByVal sender As Object, ByVal e As GridItemEventArgs) If (TypeOf e.Item Is GridDataItem) Then Dim item = CType(e.Item, GridDataItem) Dim column = item("ExpandColumn") If (column IsNot Nothing) Then column.Controls(0).Visible = True End If End If End Sub Protected Sub Cancel_Click(ByVal sender As Object, ByVal e As EventArgs) For Each item As GridDataItem In MyList.Items If item.Expanded Then item.Expanded = False End If Next Me.AdjustPageAvailability(True) End Sub Protected Sub Save_Click(ByVal sender As Object, ByVal e As EventArgs) Page.Validate(CType(sender, IButtonControl).ValidationGroup) If (Not Page.IsValid) Then Return End If For Each item As GridDataItem In MyList.Items If item.Expanded Then item.Expanded = False End If Next Me.AdjustPageAvailability(True) End Sub Private Sub AdjustPageAvailability(ByVal visible As Boolean) Dim column As TableCell For Each item As GridDataItem In Me.MyList.Items column = item("ExpandColumn") If (column IsNot Nothing) Then column.Controls(0).Visible = visible End If Next End SubEnd Class<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="TestPage.aspx.vb" Inherits="Telerik2014Q2Issue.TestPage" %><!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></head><body> <form id="form1" runat="server"> <div> <tel:RadScriptManager ID="sm" runat="server" ClientIDMode="Static" > </tel:RadScriptManager> <tel:RadTabStrip ID="DetailsTabs" runat="server" SelectedIndex="0" MultiPageID="DetailsPages"> <Tabs> <tel:RadTab runat="server" Text="Details" /> <tel:RadTab runat="server" Text="History" /> </Tabs> </tel:RadTabStrip> <tel:RadMultiPage ID="DetailsPages" runat="server" SelectedIndex="0"> <tel:RadPageView ID="RadPageView1" runat="server"> <asp:Panel runat="server" ID="DetailsForm"> <h3>DEP Well Details</h3> <p> <tel:RadGrid ID="MyList" runat="server" OnItemDataBound="MyList_ItemDataBound" OnItemCommand="MyList_ItemCommand"> <MasterTableView AutoGenerateColumns="False" AllowPaging="False" AllowSorting="False" AllowCustomPaging="False" HierarchyLoadMode="ServerOnDemand" DataKeyNames="Key"> <Columns> <tel:GridBoundColumn HeaderText="Description" DataField="Description" /> </Columns> <NestedViewTemplate> <asp:Panel ID="Panel1" runat="server"> <h3>More Details</h3> <div> <asp:ValidationSummary ID="MyValidationSummary" runat="server" HeaderText="The following errors have occurred:" /> <table> <thead></thead> <tbody> <tr> <td> <tel:RadTextBox ID="txtNotes" runat="server" TextMode="MultiLine" Rows="4" Columns="60" CssClass="MultiLineTextBox" /> </td> </tr> <tr> <td> <asp:RequiredFieldValidator ID="NotesRequired" runat="server" ControlToValidate="txtNotes" Text="* Required" ErrorMessage="Please enter a something in the box." /> </td> </tr> </tbody> </table> </div> <div> <ul class="inline"> <li> <tel:RadButton ID="Save" runat="server" Text="Save" CausesValidation="true" OnClick="Save_Click" /> </li> <li> <tel:RadButton ID="Cancel" runat="server" Text="Cancel" CausesValidation="false" OnClick="Cancel_Click" /> </li> </ul> </div> </asp:Panel> </NestedViewTemplate> </MasterTableView> </tel:RadGrid> </p> </asp:Panel> </tel:RadPageView> <tel:RadPageView ID="RadPageView2" runat="server"> <div> <p>History</p> </div> </tel:RadPageView> </tel:RadMultiPage> </div> </form></body></html>
Hi-
In our project we need to provide functionality to print the RAD Grid, the printed output should support the following features
1. Print all records, not just the first page ignoring Pagination
2. Print output should preserve and show the layout changes applied to grid i.e. If user has grouped the data by one or more columns print output should show the grouping
3. Print output should not show the quick filters on the grid
4. Add custom header and footer both of which would have dynamic contents including page number
5. At beginning of every printed page column headers of the grid should be displayed followed by data
6. Change the look and feel to be suitable for printing- Apply different CSS for printing
7. Have the option export the printed output to a PDF document
I would appreciate any help on solving these requirements.
Thanks,
Steve