Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
232 views
Hello All.

I have the following problem. The following code is not working. Everything that I want is to add RadButton control to FooterTemplate of the Calendar in RadDatePicker.

<telerik:RadDatePicker runat="server" ID="TestPicker" >
    <Calendar  >
        <FooterTemplate>
            <telerik:RadButton runat="server" ID="RadButton1" Text="TestButton"></telerik:RadButton>
        </FooterTemplate>
    </Calendar>
</telerik:RadDatePicker>

As far as I know there should not be any problems with adding IScriptControl (web server controls with client side support) to template of any control (if this template is proper instantiated and created).

The error which I received:

Script control 'RadButton1' is not a registered script control. Script controls must be registered using RegisterScriptControl() before calling RegisterScriptDescriptors().
Parameter name: scriptControl

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Script control 'RadButton1' is not a registered script control. Script controls must be registered using RegisterScriptControl() before calling RegisterScriptDescriptors().
Parameter name: scriptControl

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[ArgumentException: Script control 'RadButton1' is not a registered script control. Script controls must be registered using RegisterScriptControl() before calling RegisterScriptDescriptors().
Parameter name: scriptControl]
   System.Web.UI.ScriptControlManager.RegisterScriptDescriptors(IScriptControl scriptControl) +442251
   System.Web.UI.ScriptManager.RegisterScriptDescriptors(IScriptControl scriptControl) +49
   Telerik.Web.UI.RadWebControl.RegisterScriptDescriptors() +66
   Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer) +119
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   Telerik.Web.UI.RadCalendar.WriteHtmlContent(HtmlTextWriter writer) +4583
   Telerik.Web.UI.RadCalendar.Render(HtmlTextWriter writer) +423
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   Telerik.Web.UI.RadDatePicker.AddControlComponents(HtmlTextWriter writer) +346
   Telerik.Web.UI.RadDatePicker.RenderChildren(HtmlTextWriter writer) +1584
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10
   Telerik.Web.UI.RadWebControl.RenderContents(HtmlTextWriter writer) +165
   Telerik.Web.UI.RadDatePicker.RenderContents(HtmlTextWriter writer) +49
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer) +91
   Telerik.Web.UI.RadDatePicker.Render(HtmlTextWriter writer) +143
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +173
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +31
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +53
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page) +823
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page) +823
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3060

Please let me know if I can put IScriptControl controls to the Footer Template of the calendar control. And if not, then can you please explain why i can't do such things.

Thank you in advance.
Maxim
Top achievements
Rank 1
 answered on 18 Dec 2011
1 answer
158 views
Hi,
I have one data bound tree view. 
On three view click i Need to refresh my Grid..

On Treenode click event handler. I called the RadGrid's Rebind Method and it call the RadGrid1_NeedDataSource method where i again reset the Datasource of the grid according to selection in the treeview. But my grid is not updating the datasource..

Here is some code..

protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
 {
     if (!String.IsNullOrEmpty(RadTreeViewContainers.SelectedValue))
         RadGrid1.DataSource = WorkBoard.Client.Task.GetTaskByContainerId(RadTreeViewContainers.SelectedValue);
     else
         RadGrid1.DataSource = WorkBoard.Client.Task.GetTaskByContainerId(TaskFolders[0].Id);
 }

Node click handler 

protected void RadTreeViewContainers_NodeClick(object sender, RadTreeNodeEventArgs e)
  {
       RadGrid1.Rebind();
  }

DataSource is perfect but Not refreshing the grid.. But when manually refresh the grid from refresh button in grid. work awesome..
Please help me its very urgent..
Thanks.



Jayesh Goyani
Top achievements
Rank 2
 answered on 18 Dec 2011
3 answers
136 views
Good morning.  I have 2 grids that use a RadWindow to do their Insert/Updates.  I have them returning and updating properly.  The only problem is that I noticed is that when I update one grid, both grids are refreshed by the ajax manager.  I'd like to see only one grid refresh at a time.

Below is the AJAX setting to allow the rebinds to happen.
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
    <UpdatedControls>
        <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1"/>
        <telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1"/>
    </UpdatedControls>
</telerik:AjaxSetting>

Below is the call to refresh the grids based on type.  I'm mostly sending you this so that you can see the AJAX call.
function refreshGrid(args, type) {
    if (type == "A") {
        if (args == 1) {
            radalert("Action Updated");
        }
        else {
            radalert("Action Added");
        }
        $find("<%= RadAjaxManager.GetCurrent(me).ClientID %>").ajaxRequest("RebindActions");
    }
    else {
        if (args == 1) {
            radalert("Record Updated");
        }
        else {
            radalert("Record Added");
        }
        $find("<%= RadAjaxManager.GetCurrent(me).ClientID %>").ajaxRequest("RebindRecords");
    }
     
}


Is there a way to only refresh one of these grids at a time?

Thanks!
GP
Top achievements
Rank 1
 answered on 18 Dec 2011
1 answer
226 views
Hi,
I want to allow sorting in my grid when there is data and disallow sorting when there is no data.
But i find out that once i disallow sorting in NeedDatasource event , it will forever disallow sorting . And i find out that my code in allow/disallow sorting in ItemDataBound event do not work at all.
Below is my code !!
Protected Sub ajaxMsg_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles ajaxMsg.NeedDataSource
        Dim Msg As String
        Dim dsMsg As New DataSet()
        Dim strProjectId As String
 
        Try
 
            Msg = ""
            strProjectId = ddlProjectId.SelectedItem.Text
            dsMsg = getMessageByCompNoAndProjectId(strProjectId, "")
            ajaxMsg.DataSource = dsMsg
             
            If dsMsg.Tables(0).Rows.Count = 0 Then
                ajaxMsg.AllowSorting = False
            Else
                ajaxMsg.AllowSorting = True
            End If
        Catch ex As Exception
            Msg = ex.Message.ToString.Replace("'", "")
            RadAjaxManager1.ResponseScripts.Add("alert('" + Msg + "');")
        End Try
 
    End Sub
     
 
Protected Sub ajaxMsg_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles ajaxMsg.ItemDataBound
 
 
        If TypeOf e.Item Is Telerik.Web.UI.GridFooterItem Then
 
            If ajaxMsg.MasterTableView.Items.Count > 0 Then
 
                If ajaxMsg.EditIndexes.Count > 0 OrElse ajaxMsg.MasterTableView.IsItemInserted Then
 
                    ajaxMsg.MasterTableView.SortExpressions.Clear()
                    ' ajaxMsg.MasterTableView.AllowSorting = False
                    ajaxMsg.AllowSorting = False
 
                Else
 
                    ' ajaxMsg.MasterTableView.AllowSorting = True
                    ajaxMsg.AllowSorting = True
 
                End If
 
            Else
 
                ajaxMsg.MasterTableView.SortExpressions.Clear()
                ajaxMsg.MasterTableView.AllowSorting = False
 
                If ajaxMsg.MasterTableView.NoMasterRecordsText = "" AndAlso Not ajaxMsg.MasterTableView.IsItemInserted Then
 
                    ajaxMsg.MasterTableView.NoMasterRecordsText = Resources.Resource.Search_Display
 
                End If
 
            End If
 
 
        ElseIf TypeOf e.Item Is GridPagerItem Then
 
            ajaxMsg.MasterTableView.PagerStyle.PagerTextFormat = "{2}{3}{4} " + Resources.Resource.Page + " {0} " + Resources.Resource.Pageof + " {1}"
            Dim PageSizeCombo As RadComboBox
            PageSizeCombo = CType(e.Item.FindControl("PageSizeComboBox"), RadComboBox)
            PageSizeCombo.Visible = False
 
 
        ElseIf TypeOf e.Item Is Telerik.Web.UI.GridDataItem AndAlso Not (ajaxMsg.EditIndexes.Count > 0 OrElse ajaxMsg.MasterTableView.IsItemInserted) Then
 
            ajaxMsg.MasterTableView.NoMasterRecordsText = Resources.Resource.Search_Display
            ajaxMsg.MasterTableView.AllowSorting = True
 
            Dim commandItem As GridCommandItem
            commandItem = CType(ajaxMsg.MasterTableView.GetItems(Telerik.Web.UI.GridItemType.CommandItem)(0), GridCommandItem)
            commandItem.FindControl("ExportToCsvButton").Visible = True
 
        End If
 
 
    End Sub

Does anyone has any idea?
HELP Please!!
Jayesh Goyani
Top achievements
Rank 2
 answered on 18 Dec 2011
1 answer
88 views

Hello all,

 

From the beginning I am  in a fight with FormDecorator.

He doesn’t do what I want him to do.

 

I have a simple example

A FormDecorator with 2 Telerik controls and a Windows Button.

 

 

<form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" Skin="Simple" DecoratedControls="All" />
<telerik:RadTabStrip ID="RadTabStrip1" runat="server">
    <Tabs>
        <telerik:RadTab runat="server" Text="Root RadTab1">
        </telerik:RadTab>
        <telerik:RadTab runat="server" Text="Root RadTab2">
        </telerik:RadTab>
    </Tabs>
</telerik:RadTabStrip>
<telerik:RadButton ID="RadButton1" runat="server" Text="Telerik Button">
</telerik:RadButton>
<asp:Button ID="Button1" runat="server" Text="ASP Button" />
</form>

 

On the normal Button it’s working but on the other controls it doesn't

 

I have followed some examples but everything is very straight forward so what I am missing here?

 

Best regards,

 

Marco

Marco
Top achievements
Rank 2
 answered on 17 Dec 2011
3 answers
141 views
Hi,

i want hide the radgrid edit option when add new record opened. i have code for when edited add new record button has been hidden. but i want code for edit option should be hidden when added new record.

Thanks
Dhamu.
Velmurugan
Top achievements
Rank 1
 answered on 17 Dec 2011
1 answer
1.8K+ views
Hi,

Can somebody help me with showing and hiding tabs in code behind? I've tried many methods and none seem to work. I really appreciate your assistance with this one.

Thanks,
Ron.
Richard
Top achievements
Rank 1
 answered on 17 Dec 2011
6 answers
1.1K+ views
Is there a way to ensure that the RadGrid control height is always 100% of the datasource content?

For example, if there are only 3 rows in the grid, the height of the grid control would only be as tall as the three rows in the datasource plus the header row.  All controls on the page below the grid would be displayed directly below the grid.

If the datasource of the grid changed so that the results contained 15 rows, the height of the grid would change to show all 15 rows, and again, any controls on the page below the grid would show directly below the results.

Thanks.
soraya
Top achievements
Rank 1
 answered on 16 Dec 2011
10 answers
316 views
I find an issue in Radgrid.  I couldnt fix it.   I create some columns programmatically.  When I hide colum from header context menu, some blank colum is appear al last.  Copy aspx, aspx.cs and Image (before and after hide column)...  ASPX:                                            <%@ Page Title="" Language="C#" MasterPageFile="~/UI/Doculex.Master" AutoEventWireup="true" CodeBehind="DocumentsList.aspx.cs" Inherits="WebSearch.UI.DocumentsList" %>
<%@ MasterType VirtualPath="~/UI/Doculex.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
   


    <telerik:RadAjaxPanel  runat="server"   EnableViewState="true"  EnableEmbeddedScripts="true" EnableAJAX= "false"   >

    <div class="headerPage">
        <asp:Label ID="lblTitle" runat="server"></asp:Label>
    </div>
    <div class="containerSub" id ="containerSub" runat="server">
    <telerik:RadSplitter  ID ="Splitter"  Width = "100%"  Height ="100%" Orientation="Vertical"  runat="server">
        <telerik:RadPane runat="server" ID="gridPane" Scrolling="None" Height="80%"  Width="100%">
              
             
             <telerik:RadGrid ID="DocumentGrid" runat="server"
                AllowPaging="True" AllowSorting="True"
                AllowFilteringByColumn="true"             
                CellSpacing="0" Height="500px"
                EnableHeaderContextMenu ="true" EnableHeaderContextFilterMenu="true"
                GridLines="None"    AllowMultiRowSelection="true"
                PageSize="12"  AutoGenerateColumns="false" Width="100%"
                EnableLinqExpressions="false"  EnableViewState="True"
                onneeddatasource="DocumentGrid_NeedDataSource"
                onprerender="DocumentGrid_PreRender"  
                onitemcommand="DocumentGrid_ItemCommand"   >
            <ItemStyle VerticalAlign="Top" />
           
            <GroupingSettings CaseSensitive="false" />
         
            <MasterTableView  CommandItemDisplay="None"  DataKeyNames="Id"
                TableLayout="Auto"  PagerStyle-Mode="NumericPages" >
                  <Columns>
                        <telerik:GridClientSelectColumn  CommandName="Select" UniqueName="Select"></telerik:GridClientSelectColumn>     
                       
                   
                                   
                    </Columns>
                </MasterTableView>
                  <ClientSettings Scrolling-SaveScrollPosition="true"  EnablePostBackOnRowClick="true"  Scrolling-AllowScroll="true"  ActiveRowIndex="true" AllowColumnsReorder="true" AllowColumnHide="true">
                  
                  <Selecting AllowRowSelect="true"  />
                           <ClientEvents OnColumnHidden="ColumnHiding" />
                           <Resizing AllowColumnResize="true"></Resizing>

                              
                         </ClientSettings>
                </telerik:RadGrid>

               
        </telerik:RadPane>
       <telerik:RadPane ID="searchPane" Width="20px"  runat="server" Scrolling="None" Height="350px" >
            <telerik:RadSlidingZone runat="server" ID="PaneZone" SlideDirection="Left"   >
                  <telerik:RadSlidingPane ID="DocPreview" runat="server" Width="300px"   OnClientDocked = "PaneDockDocPreview"
                                             OnClientUndocked = "PaneUnDockDocPreview">
                                             <div Id="preview" runat="server"></div>
                 </telerik:RadSlidingPane>
                  <telerik:RadSlidingPane ID="Properties" runat="server" Width="300px" OnClientDocked = "PaneDockProperties"
                                             OnClientUndocked = "PaneUnDockProperties" IconUrl="~/UI/Images/properties.png">
                                             <div id="PropertyList" style="margin-top:5%" runat="server" visible="true">
                                             
                                             </div>

                                               
                 </telerik:RadSlidingPane>
                 <telerik:RadSlidingPane Scrolling="Y" ID="FileNotesPane" runat="server" Width="300px" OnClientDocked = "PaneDockNotes"
                                             OnClientUndocked = "PaneUnDockNotes" IconUrl="~/UI/Images/note.png" visible="false">
                                             <div id="Div1" style="margin-top:5%; width:100%"  runat="server">

                                               <asp:LinkButton ID="lnkAddComment" runat="server" onclick="lnkAddComment_Click" >
                                                  <asp:ImageButton ID="imgAdd" runat="server" ImageUrl="~/UI/Images/add.png" />
                                              <asp:Label ID="lblAddComment" runat="server" /></asp:LinkButton>&nbsp;&nbsp; </div><div class="clear"></div>
                                            
                                            <asp:Panel ID="pnlComment" Visible="false" runat="server">
                                                <table style="width:100%">
                                                    <tr>
                                                        <td><asp:Label ID="lblComent" runat="server"></asp:Label></td><td></td></tr>
                                                        <tr>
                                                        <td ><asp:TextBox  TextMode="MultiLine" CssClass="commentsWithScroll"  Wrap="true" ID="txtComents" runat="server"></asp:TextBox>
                                                         <telerik:RadSpell ID="spellComments" Runat="server" ControlToCheck="txtComents"   />
   
                                                         <asp:RequiredFieldValidator ID="rfvComment" runat="server" ControlToValidate="txtComents" Display="Dynamic" ErrorMessage="*" CssClass="validator" />
                                                        
                                                            <asp:RegularExpressionValidator ID="rExpComments" runat="server" ControlToValidate="txtComents"  CssClass="validator"
                                                        Display="Dynamic"   ValidationExpression="^([\S\s]{1,280})$"></asp:RegularExpressionValidator> </td>
                                                        <td  style="text-align:right"><asp:ImageButton ID="imgSave" runat="server" OnClick="imgSave_Click" ImageUrl="~/UI/Images/add.png" />
                                                       <asp:ImageButton ID="imgCancel" runat="server" ImageUrl="~/UI/Images/cancel.png"   OnClick="imgCancel_Click" /></td>                                                      
                                                        
                                                        </tr></table>
                                                        <div class="clear"></div>
                                                        
                                                        </asp:Panel><asp:Repeater ID="NotesRepeater" runat="server">

                                            <ItemTemplate>
                                              
                                                    <div class="note">
                                                        <div class="dateNote">
                                                           <%# Eval("Date") %>
                                                        </div>
                                                         <div class="ownerNote">
                                                          <%# Eval("OwnerComment")%>
                                                        </h3>
                                                        <div class="commentNote">
                                                          <%# Eval("Comments")%>
                                                        </div>
                                                    </div>
                                                    <div class="clear"></div>
                                            </ItemTemplate>
                                         

                                        </asp:Repeater>


                                             

                                               
                 </telerik:RadSlidingPane>
            </telerik:RadSlidingZone>
        </telerik:RadPane>
    </telerik:RadSplitter>
    
    </div>
     

    </telerik:RadAjaxPanel>


</asp:Content>
ASPX.Cs using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.IO;
using System.Resources;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using WebSearch.Components;
using WebSearch.SecurityModel;
using WebSearch.UI.Model;
using WebSearch.UI.Model.Items.Grid;
using WebSearch.UI.Model.Screen;

namespace WebSearch.UI
{
    public partial class DocumentsList : System.Web.UI.Page
    {
        #region Properties
        
        private string _culture;
        private ResourceManager _resources;
        private readonly smOrganization _organization= new smOrganization();
        private List<string> hideColum = new List<string>();
        
        #endregion

        #region Events
       
        protected void Page_Load(object sender, EventArgs e)
        {
            GetInfo();
          
            if (Page.IsPostBack)
            {
                App.SavePreferencesGrid(DocumentGrid);
                App.SavePane();
               if(DocumentGrid.MasterTableView.GetSelectedItems().Length ==0)
               {
                   Session["SelectedRows"] = null;

                   if (Request.QueryString["A"] == "pop" || Request.QueryString["A"] == "note")
                   {
                       Response.Redirect("~/UI/DocumentsList.aspx");
                   }
               }
            }

            if (!Page.IsPostBack)
            {
                LoadSettings();
              
                App.LoadPreferencesGrid(DocumentGrid);
                App.LoadPane(PaneZone);
                LoadCorrectAction();
            }
           

            DocumentGrid.HeaderContextMenu.ItemCreated += new RadMenuEventHandler(HeaderContextMenu_ItemCreated);
            
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            CreateColumns();
        }

        void HeaderContextMenu_ItemCreated(object sender, RadMenuEventArgs e)
        {
            CommonFunctions.HideColumns(sender, e);
            CommonFunctions.HideSpecialColumns("Select", e.Item);
            CommonFunctions.HideSpecialColumns("Id", e.Item);
            CommonFunctions.HideSpecialColumns("Path", e.Item);
            CommonFunctions.HideSpecialColumns("FileName", e.Item);
           
        }

        protected void lnkAddComment_Click(object sender, EventArgs e)
        {
            pnlComment.Visible = true;
            txtComents.Text = null;
            lnkAddComment.Visible = false;
        }

        protected void DocumentGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
            DocumentGrid.DataSource = GenericGrid.ListDocuments;
        }

        protected void DocumentGrid_PreRender(object sender, EventArgs e)
        {
            DocumentGrid.MasterTableView.GetColumnSafe("RowIndicator").Display = false;
            DocumentGrid.MasterTableView.GetColumnSafe("Id").Display = false;
            DocumentGrid.MasterTableView.GetColumnSafe("Path").Display = false;

           if (hideColum.Count > 0)
            {
                foreach (string col in hideColum)
                {
                    DocumentGrid.MasterTableView.GetColumnSafe(col).Display = false;
                }
            }


         

            CommonFunctions.GridOptions(DocumentGrid);
        }

        protected void imgSave_Click(object sender, ImageClickEventArgs e)
        {
            if (!Page.IsValid) return;

            string comment = txtComents.Text.Trim();

            _organization.FileNotes = new smFileNotes
            {
                Comments = comment,
                UserId = App.CurrentUserId(),
                FileId = Convert.ToInt16(Session["ID"].ToString()),
                Date = DateTime.Now,
            };
            _organization.CreateNote();
            pnlComment.Visible = false;
            LoadNotes();
            lnkAddComment.Visible = true;
        }

        protected void imgCancel_Click(object sender, ImageClickEventArgs e)
        {
            txtComents.Text = null;
            pnlComment.Visible = false;
            lnkAddComment.Visible = true;
        }

       

        protected void DocumentGrid_ItemCommand(object sender, GridCommandEventArgs e)
        {
            switch (e.CommandName)
            {

                case "RowClick":

                    Session["SelectedRows"] = null;

                     Properties.Visible = false;
                     FileNotesPane.Visible = false;

                    if (DocumentGrid.MasterTableView.GetSelectedItems().Length == 0)
                    {
                        preview.InnerHtml = null;
                        
                        PaneZone.DockedPaneId = null;
                        PaneZone.ExpandedPaneId = null;

                        gridPane.Width = Unit.Empty;
                        searchPane.Width = Unit.Pixel(20);
                        return;
                    }

                    if (DocumentGrid.MasterTableView.GetSelectedItems().Length == 1)
                    {
                        Preview();
                        Session["SelectedRows"] = DocumentGrid.MasterTableView.GetSelectedItems();
                        Session["tab"] = Convert.ToString((int)Doculex.Tabs.ActiveDocument);
                    }

                    if (DocumentGrid.MasterTableView.GetSelectedItems().Length > 1)
                    {
                        Session["SelectedRows"] = DocumentGrid.MasterTableView.GetSelectedItems();
                        Session["tab"] = Convert.ToString((int)Doculex.Tabs.MultipleDocument);

                        PaneZone.ExpandedPaneId = "";
                        PaneZone.DockedPaneId = "";

                        FileNotesPane.Visible = false;
                        Properties.Visible = false;
                    }
                    
                    ((HtmlGenericControl)Master.FindControl("header")).Controls.Clear();

                    if (Session["container"] != null)
                    {
                        UIContainer _container = (UIContainer)Session["container"];

                        MenuScreen _menu = new MenuScreen(Convert.ToInt16(Session["tab"]));
                        Session["menu"] = _menu;
                        _container.Menu = (MenuScreen)Session["menu"];

                        ((HtmlGenericControl)Master.FindControl("header")).Controls.Add(_container.RenderHeader());
                    }

                    break;

            }
        }
        #endregion

        #region Methods

        private void LoadCorrectAction()
        {
            if (Request.QueryString["A"] == "prop")
            {
                LoadProperties();
            }
            if (Request.QueryString["A"] == "note")
            {
                LoadNotes();
            }
        }

        private void CreateColumns()
        {
            List<smDocumentTypeField> documentTypeFieldList = _organization.GetDocumentTypeField(1);

           
          
            GridBoundColumn boundColumnId = new GridBoundColumn();
            DocumentGrid.MasterTableView.Columns.Add(boundColumnId);

            boundColumnId.DataField = "Id";
            boundColumnId.UniqueName = "Id";
            boundColumnId.Visible = false;
            boundColumnId.HeaderStyle.Width = Unit.Pixel(1);
            boundColumnId.ItemStyle.Width = Unit.Pixel(1);

            boundColumnId = new GridBoundColumn();
            DocumentGrid.MasterTableView.Columns.Add(boundColumnId);

            boundColumnId.DataField = "Path";
            boundColumnId.UniqueName = "Path";
            boundColumnId.Visible = false;
           

            GridImageColumn imgeColum = new GridImageColumn();
            DocumentGrid.MasterTableView.Columns.Add(imgeColum);

            imgeColum.DataImageUrlFields = new string[] { "Image" };
            imgeColum.HeaderText = "File Type";
            imgeColum.DataImageUrlFormatString = "~/UI/Images/{0}";
            imgeColum.ImageAlign = ImageAlign.Middle;
            imgeColum.AllowFiltering = false;
            imgeColum.UniqueName = "Image";
           

           
            foreach (smDocumentTypeField documentTypeField in documentTypeFieldList)
            {
                GridBoundColumn boundColumn = new GridBoundColumn();
                DocumentGrid.MasterTableView.Columns.Add(boundColumn);

                boundColumn.DataField = documentTypeField.Name;
                boundColumn.HeaderText = documentTypeField.Header;
                boundColumn.UniqueName = documentTypeField.Name;
                boundColumn.Visible = documentTypeField.IsVisible;
              
                if (documentTypeField.IsVisible == false)
                {
                    hideColum.Add(documentTypeField.Name);
                }
            }

        }

        private void GetInfo()
        {
            _culture = App.CurrentCulture();
            _resources = App.GetMasterResources("DocumentsList");
        }

        private void LoadSettings()
        {
            lblTitle.Text = _resources.GetString(lblTitle.ID, new CultureInfo(_culture));

            DocPreview.IconUrl = VirtualPathUtility.ToAbsolute("~/UI/Images/preview.png");
            DocPreview.TabView = SplitterSlidePaneTabView.ImageOnly;
            DocPreview.Title = _resources.GetString("TitleViewPane", new CultureInfo(_culture));
            DocPreview.UndockText =
                _resources.GetString("UndockViewPane", new CultureInfo(_culture));
            DocPreview.DockText =
                _resources.GetString("DockViewPane", new CultureInfo(_culture));
            DocPreview.ToolTip =
                _resources.GetString("ToolTipViewPane", new CultureInfo(_culture));

            PaneZone.Style.Add("position", "static");

            Properties.Visible = false;
            FileNotesPane.Visible = false;
           // DocPreview.Visible = false;

        }
        
        private void LoadSettingsNotes()
        {
            //spellComments.Language = _culture;
            //spellComments.DictionaryLanguage = _culture;

         
            FileNotesPane.TabView = SplitterSlidePaneTabView.ImageOnly;
            FileNotesPane.Title = _resources.GetString("TitleNotesPane", new CultureInfo(_culture));
            Properties.UndockText =
                _resources.GetString("UndockNotesPane", new CultureInfo(_culture));
            FileNotesPane.DockText =
                _resources.GetString("DockNotesPane", new CultureInfo(_culture));
            FileNotesPane.ToolTip =
                _resources.GetString("ToolTipNotesPane", new CultureInfo(_culture));

            FileNotesPane.Visible = true;
            Properties.Visible = false;
          //  DocPreview.Visible = true;

            ImageButton imgSave = (pnlComment.FindControl("imgSave") as ImageButton);
            ImageButton imgCancel = (pnlComment.FindControl("imgCancel") as ImageButton);
            RegularExpressionValidator rExpComments = (pnlComment.FindControl("rExpComments") as RegularExpressionValidator);

            lblAddComment.Text = _resources.GetString(lblAddComment.ID, new CultureInfo(_culture));
            imgSave.ToolTip = _resources.GetString(imgSave.ID, new CultureInfo(_culture));
            imgSave.AlternateText = _resources.GetString(imgSave.ID, new CultureInfo(_culture));
            imgCancel.ToolTip = _resources.GetString(imgCancel.ID, new CultureInfo(_culture));
            imgCancel.AlternateText = _resources.GetString(imgCancel.ID, new CultureInfo(_culture));
            rExpComments.ErrorMessage = _resources.GetString(rExpComments.ID, new CultureInfo(_culture));
        }

        protected void ToggleRowSelection(object sender, EventArgs e)
        {
            ((sender as CheckBox).NamingContainer as GridItem).Selected = (sender as CheckBox).Checked;
        }

        private void LoadNotes()
        {
            LoadSettingsNotes();
            FillCheckGrid();
         
            rExpComments.ErrorMessage = _resources.GetString(rExpComments.ID, new CultureInfo(_culture));

            GridDataItem[] selectedItems = (GridDataItem[])Session["SelectedRows"];

            if (selectedItems.Length == 0) return;

            foreach (var selectedItem in selectedItems)
            {
                Hashtable newValues = new Hashtable();
                
                selectedItem.ExtractValues(newValues);
                Session["ID"] = Convert.ToInt16(newValues["Id"]);
                NotesRepeater.DataSource = _organization.GetNotes(Convert.ToInt16(newValues["Id"]));
                NotesRepeater.DataBind();
            }
            
            FileNotesPane.Visible = true;
            PaneZone.DockedPaneId = FileNotesPane.ID;
            PaneZone.ExpandedPaneId = FileNotesPane.ID;
        }

        private void LoadProperties()
        {
            LoadSettingsProperties();
            GridDataItem[] selectedItems = (GridDataItem[]) Session["SelectedRows"];
            
            if (selectedItems == null) return;

            if (selectedItems.Length == 0) return;

                
            Table tbProperty = new Table();
            FillCheckGrid();

            List<smDocumentTypeField> documentTypeFieldList = _organization.GetDocumentTypeField(1);



            foreach (var smDocumentTypeField in documentTypeFieldList)
            {
                TableRow row = new TableRow();

                TableCell cell = new TableCell();
                Label lbl = new Label { Text = smDocumentTypeField.Name + ":" };
                cell.CssClass = "LabelCol";
                cell.Controls.Add(lbl);
                row.Cells.Add(cell);

                foreach (GridDataItem item in selectedItems)
                {
                    Hashtable newValues = new Hashtable();
                    item.ExtractValues(newValues);

                    if (newValues[smDocumentTypeField.Name] != null && newValues[smDocumentTypeField.Name].ToString().Length > 30)
                    {
                        newValues[smDocumentTypeField.Name] = newValues[smDocumentTypeField.Name].ToString().Substring(
                            0, 30) + "...";
                    }

                    cell = new TableCell();
                    lbl = new Label { Text = newValues[smDocumentTypeField.Name] == null ? null : newValues[smDocumentTypeField.Name].ToString() };
                    cell.CssClass = "TextBoxCol";
                    cell.Controls.Add(lbl);
                    row.Cells.Add(cell);
                }

                tbProperty.Rows.Add(row);
            }
            PropertyList.Controls.Add(tbProperty);
            Properties.Visible = true;
            PaneZone.DockedPaneId = Properties.ID;
            PaneZone.ExpandedPaneId = Properties.ID;
        }

        private void LoadSettingsProperties()
        {
           
            Properties.TabView = SplitterSlidePaneTabView.ImageOnly;
            Properties.Title = _resources.GetString("TitlePropertiesPane", new CultureInfo(_culture));
            Properties.UndockText =
                _resources.GetString("UndockPropertiesPane", new CultureInfo(_culture));
            Properties.DockText =
                _resources.GetString("DockPropertiesPane", new CultureInfo(_culture));
            Properties.ToolTip =
                _resources.GetString("ToolTipPropertiesPane", new CultureInfo(_culture));

            FileNotesPane.Visible = false;
            Properties.Visible = true;
           // DocPreview.Visible = true;
        }

        private void Preview()
        {
           
            foreach (GridDataItem selectedItem in DocumentGrid.MasterTableView.GetSelectedItems())
            {
                Hashtable newValues = new Hashtable();

                selectedItem.ExtractValues(newValues);


                String fileName = newValues["FileName"].ToString();
                String path = newValues["Path"].ToString();

                string[] extension = fileName.Split('.');

                switch (extension[1].ToString().ToLower())
                {
                    case "txt":
                        StreamReader oStreamReader = File.OpenText(path);
                        string contents = oStreamReader.ReadToEnd();

                        preview.InnerHtml = contents;

                        oStreamReader.Close();
                        break;
                        
                    case "pdf":

                        preview.InnerHtml =
                            "<iframe src=\"../TempFolder/" + fileName + "\" style=\"width:718px; height:700px;\" frameborder=\"0\"></iframe>";

                        break;

                    default:

                        preview.InnerHtml = "<b>Preview not available<b>";
                        break;

                }

                PaneZone.ExpandedPaneId = DocPreview.ID;
                PaneZone.DockedPaneId = DocPreview.ID;

                searchPane.Width = Unit.Empty;
              //  searchPane.Width = Unit.Pixel(20);
               
            }
        }

        public void ExecuteAction(string action)
        {
          
            switch (action)
            {
                case "delete":

                    if (DocumentGrid.MasterTableView.GetSelectedItems().Length <= 0)
                    {
                      //  RadAjaxManager1.Alert("Select Document to delete");
                    }
                    else
                    {
                        Hashtable newValues;
                        DataTable dt = (DataTable)Session["grid"];
                        DataTable dataTable = dt.Copy();

                        foreach (GridDataItem selectedItem in DocumentGrid.MasterTableView.GetSelectedItems())
                        {

                            newValues = new Hashtable();

                            selectedItem.OwnerTableView.ExtractValuesFromItem(newValues, selectedItem);

                            foreach (DataRow row in dt.Rows)
                            {
                                if (row["id"].ToString() == newValues["id"].ToString())
                                {
                                    DataRow deleteRow = dataTable.Rows.Find(row["id"]);
                                    dataTable.Rows.Remove(deleteRow);
                                }
                            }

                        }
                        dataTable.AcceptChanges();
                        Session["action"] = "1";
                        Session["grid"] = dataTable;
                        DocumentGrid.DataSource = dataTable;
                        DocumentGrid.DataBind();

                    }
                    break;

                case "zip":
                       
                       
                    break;

               
            }
        }

        public void FillCheckGrid()
        {
          
            GridDataItem[] selectedItems = (GridDataItem[])Session["SelectedRows"];
            
            if (selectedItems == null) return;

            if (selectedItems.Length == 0) return;
           

            foreach (var selectedItem in selectedItems)
            {
                Hashtable newValues = new Hashtable();

                selectedItem.ExtractValues(newValues);

                foreach (GridDataItem row in DocumentGrid.MasterTableView.Items)
                {
                    if (row["Id"].Text ==  newValues["Id"].ToString())
                    {
                        row.Selected = true;
                    }
                }
            }
        }
        #endregion
    }
}


public class MyTemplate : ITemplate
{
    protected Image ImageIcon;

    private readonly string ColName;

    public MyTemplate(string cName)
    {
        ColName = cName;
    }

    public void InstantiateIn(System.Web.UI.Control container)
    {
        ImageIcon = new Image();
        ImageIcon.ID = "ImageIcon";
        ImageIcon.DataBinding += new EventHandler(ImageIcon_DataBinding);
        container.Controls.Add(ImageIcon);
    }

    public void ImageIcon_DataBinding(object sender, EventArgs e)
    {
        Image iconFileType = (Image)sender;

        GridDataItem container = (GridDataItem)iconFileType.NamingContainer;
        iconFileType.ImageUrl = ((DataRowView)container.DataItem)[ColName].ToString() ;
    }
}                                                                                                                                                                       
July
Top achievements
Rank 2
 answered on 16 Dec 2011
1 answer
134 views
i have a problem with the OnNodeClick event in the tree view. I have the following code in ascx file :

<telerik:RadAjaxLoadingPanel  ID = "RadAjaxLoadingPanel1" runat ="server"></telerik:RadAjaxLoadingPanel>
        <telerik:RadAjaxPanel ID = "RadAjaxPanel" runat = "server" >
            <telerik:RadTreeView ID ="RadTreeView1" runat ="server" Width ="100%" OnNodeExpand = "RadTreeView1_NodeExpand" LoadingStatusPosition ="BeforeNodeText"
                OnNodeClick = "RadTreeView1_NodeClick"  >                            
            </telerik:RadTreeView>
        </telerik:RadAjaxPanel>

And i am adding the nodes in the code behind:

My code behind:

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        LoadRootNodes(RadTreeView1, TreeNodeExpandMode.ServerSideCallBack)
    End Sub
 
Private Shared Sub LoadRootNodes(ByVal treeView As RadTreeView, ByVal expandMode As TreeNodeExpandMode)
        Dim RootNode As New RadTreeNode()
        RootNode.Text = "Guest"
        RootNode.Value = "1"
        RootNode.ExpandMode = expandMode
        treeView.Nodes.Add(RootNode)
    End Sub
 
Protected Sub RadTreeView1_NodeExpand(ByVal sender As Object, ByVal e As RadTreeNodeEventArgs)
        PopulateNodeOnDemand(e, TreeNodeExpandMode.ServerSideCallBack)
    End Sub
 
Private Shared Sub PopulateNodeOnDemand(ByVal e As RadTreeNodeEventArgs, ByVal expandMode As TreeNodeExpandMode)
        For i As Integer = 1 To 10
            Dim childNode As New RadTreeNode
            childNode.Text = i.ToString
            childNode.Value = i.ToString
            e.Node.Nodes.Add(childNode)
        Next
        e.Node.Expanded = True
    End Sub
 
Protected Sub RadTreeView1_NodeClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadTreeNodeEventArgs)
        Dim str As String = e.Node.Value
    End Sub
 
On Init i am just loading one root node guest, and when Expand is clicked, i am populating
1 to 10 as child nodes. Now, when i click on one of the nodes, i can hit the break point  at RadTreeView1_NodeClick and when i run, the tree is getting populated and
everything is fine. Now, my problem is, when i click another node, i CANT hit
the break point(on the second node click) and the tress is also not getting
populated. I can just see "Guest" and not the below nodes. Can any one
please help me. Thanks
Sagar
Top achievements
Rank 1
 answered on 16 Dec 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Rakhee
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?