
Hi,
I am using Treeview control to create Folder and file structure functionality. I have added context Menu to show New Folder option while right clicking on the Node item. I want to disable the New Folder for the file level.
case "NewFolder":
if (treeNode.get_parent() == treeNode.get_treeView())
{
menuItem.set_enabled(
true);
}
else
{
menuItem.set_enabled(
true);
}
break;
Thanks,
Krantikumar Jain
| <telerik:RadAjaxManager ID="radAjaxManager" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="radOrgNodeTree"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="radOrgNodeTree" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadTreeView ID="radOrgNodeTree" runat="server" |
| AllowNodeEditing="false" |
| OnClientLoad="tree.load" |
| OnClientNodeClicking="tree.nodeClicking" |
| OnClientNodeClicked="tree.nodeClicked" |
| OnClientContextMenuShowing="tree.contextMenuShowing" |
| OnClientMouseOver="tree.mouseOver" |
| OnClientContextMenuItemClicked="tree.contextMenuItemClicked" |
| > |
| <ContextMenus> |
| <telerik:RadTreeViewContextMenu |
| ID="orgNodeContextMenu" |
| runat="server" |
| ClickToOpen="true" |
| Skin="Vista"> |
| <Items> |
| <telerik:RadMenuItem Text="Add New..." Value="add" /> |
| <telerik:RadMenuItem Text="Edit" Value="edit" /> |
| <telerik:RadMenuItem Text="Delete" Value="delete" /> |
| <telerik:RadMenuItem Text="Collapse All" Value="collapse" /> |
| </Items> |
| </telerik:RadTreeViewContextMenu> |
| </ContextMenus> |
| </telerik:RadTreeView> |
| protected void Page_Load(object sender, EventArgs e) { |
| if(!IsPostBack) { |
| TreeNodeTemplate treeNodeTemplate = new TreeNodeTemplate(); |
| treeNodeTemplate.Command += treeNodeTemplate_Command; |
| radOrgNodeTree.NodeTemplate = treeNodeTemplate; |
| //set data source |
| } |
| radOrgNodeTree.DataBind(); |
| } |
| private void treeNodeTemplate_Command(object sender, CommandEventArgs e) { |
| //... |
| } |
| private class TreeNodeTemplate : ITemplate { |
| public event CommandEventHandler Command; |
| private void OnCommand(CommandEventArgs e) { |
| if (Command != null) { |
| Command(this, e); |
| } |
| } |
| public void InstantiateIn(Control container) { |
| //... |
| Button saveButton = new Button(); |
| //set properties |
| saveButton.Command += saveButton_Command; |
| //data binding event handler |
| //add to controls collection |
| //... |
| } |
| private void saveButton_Command(object sender, CommandEventArgs e) { |
| OnCommand(e); |
| } |
| } |
| <telerik:RadAjaxManager ID="AjaxManager" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="ButtonA"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="PanelA" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="ButtonB"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="PanelB" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <div runat="server" id="PanelA"> |
| <asp:Button runat="server" ID="ButtonA" Text="ButtonA" /> |
| <%-- some PanelA stuff --%> |
| <div runat="server" id="PanelB"> |
| <asp:Button runat="server" ID="ButtonB" Text="ButtonB" /> |
| <%-- some PanelB stuff --%> |
| </div> |
| </div> |
Hi,
I have an issue with sorting.
I have a grid that is full generated on server side. It is not generated on the page Init or page load because it is dynamically created (columns and rows) based on previous control selection. Think of web based database editor.
<telerik:RadGrid ID="rgEntity" runat="server" AllowPaging="True" AllowCustomPaging="True" PageSize="25" Skin="Office2007" GridLines="None" AllowSorting="True" AutoGenerateColumns="False" OnPageIndexChanged="rgEntity_PageIndexChanged" OnSortCommand="rgEntity_SortCommand">
<PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="True" />
<MasterTableView Width="100%" Height="100%" CommandItemDisplay="Top" EnableColumnsViewState="True" InsertItemDisplay="Top" EditMode="InPlace">
<RowIndicatorColumn><HeaderStyle Width="20px"></HeaderStyle></RowIndicatorColumn>
<ExpandCollapseColumn><HeaderStyle Width="20px"></HeaderStyle></ExpandCollapseColumn>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="True">
<Scrolling AllowScroll="True" UseStaticHeaders="True" />
<Selecting AllowRowSelect="true" />
</ClientSettings>
</telerik:RadGrid>
protected void rgEntity_SortCommand(object source, GridSortCommandEventArgs e)
{
e.Canceled = true;
GridSortExpression expression = new GridSortExpression();
string prevSortColumn = hiddenSortColumn.Value;
string prevSortDirection = hiddenSortDirection.Value;
bool prevSortDescending = false;
if (prevSortDirection != "false")
prevSortDescending = true;
string fieldname = e.CommandArgument.ToString();
bool sortdescending = false;
if (prevSortColumn == fieldname)
sortdescending = !prevSortDescending;
hiddenSortColumn.Value = fieldname;
hiddenSortDirection.Value = sortdescending.ToString();
LoadData(fieldname, sortdescending);
}
My problem is that the server side code is never accessed.
I checked that postback occurs and I can see that the Page_Load event is called, but the SortCommand event is never reached.
Also, I tried changing the EnableColumnsViewState to false, but then the app crashes on js file.
Microsoft Jscript runtime error: 'this.get_element().tBodies.0.rows' is null or not an object.
Any help would be appreciated.
Thanks.
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head runat="server"> |
| <title></title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <asp:scriptmanager id="Sc1" runat="server"> |
| </asp:scriptmanager> |
| <div id="divToClick" style="border: solid thin red; width: 50px; height: 25px; position: absolute; |
| top: 300px; left: 100px;" onclick="ShowMenu(event);"> |
| </div> |
| <telerik:RadContextMenu ID="RadContextMenu1" runat="server" DefaultGroupSettings-ExpandDirection="Up"> |
| <Items> |
| <telerik:RadMenuItem Text="Item1" Value="vItem1"> |
| </telerik:RadMenuItem> |
| <telerik:RadMenuItem Text="Item2" Value="vItem2"> |
| </telerik:RadMenuItem> |
| <telerik:RadMenuItem Text="Item2" Value="vItem3"> |
| </telerik:RadMenuItem> |
| </Items> |
| </telerik:RadContextMenu> |
| </form> |
| </body> |
| <script type="text/javascript"> |
| function ShowMenu(e) |
| { |
| var contextMenu = $find('RadContextMenu1'); |
| var divToClick = $get('divToClick'); |
| var bounds = Sys.UI.DomElement.getBounds(divToClick); |
| var x = parseInt(bounds.x); |
| var y = parseInt(bounds.y - 75); |
| contextMenu.showAt(x, y); |
| $telerik.cancelRawEvent(e); |
| } |
| </script> |
| </html> |