Telerik Forums
UI for ASP.NET AJAX Forum
7 answers
374 views
Hi,

I've taken the previous script examples and am trying to limit character content for multiple RadEditor controls on a single page  (...see original thread, "Charector limit in Rad:Editor", posted 27 Oct 2008). 

I've included my current version of the script below.  Everything works, except when adding content to the editor using a simple "right click paste" command.

Typing beyond the specified character limits is handled correctly, as well as using the commands "Paste from Word", "Paste Plain Text", and "Paste As Html" when the [clipboard content + previous text entered] exceeds the specified character limits.

However, the paste command from a simple right click-paste or using the Edit/Paste function from the Menu... or ctl V does not result in the alert message that the limits have been exceeded.

Shown below is the code that I've been using.

Please let me know what I can do to resolve this.

Thanks in advance.

====================================================================================================
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="contentPage.aspx.vb" Inherits="contentPage" title="Untitled Page" %>

<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 
<script type="text/javascript" src="limitCharacters2.js"></script>

<telerik:RadEditor ID="RadEditorHeadline" runat="server" OnClientLoad="LimitCharacters" OnClientPasteHtml="OnClientPasteHtml">
<Content></Content></telerik:RadEditor>
       
<telerik:RadEditor ID="RadEditorPurpose" runat="server" OnClientLoad="LimitCharacters" NewLineBr="False" OnClientPasteHtml="OnClientPasteHtml">
<Content></Content></telerik:RadEditor>  

</asp:Content>

 

 

//======================================================================================================== 

//limitCharacters2.js

//========================================================================================================
// JavaScript File to limit characters entered into Prometheus Rad Editor control

var editorList= new Object();
var editorLengthArray = [80,80,80];
var counter = 0;

function isAlphaNumericKey(keyCode)
  {
   if ((keyCode > 47 && keyCode < 58) || (keyCode > 64 && keyCode < 91))
   {
    return true;
   }
   return false;
  }
 
function LimitCharacters(editor)
  {       
 
      editorList[editor.get_id()] = editorLengthArray[counter];
      counter++;
     
      editor.attachEventHandler("onkeydown", function(e)
      {
        e = (e == null)? window.event : e;
        if (isAlphaNumericKey(e.keyCode))
        {  
            var maxTextLength = editorList[editor.get_id()];
               
            textLength = editor.get_text().length;
            if (textLength >= maxTextLength)
            {
                alert('You are not able to type more than ' + maxTextLength + ' symbols!');
            
                e.returnValue = false;
            }
        }
       });
  }

function CalculateLength(editor, value)  
 {  
     var textLength = editor.get_text().length;  
     var clipboardLength = value.length;  
     textLength += clipboardLength;  
     return textLength;  
 }  
  
function OnClientPasteHtml(editor, args)  
 {  
    var maxTextLength = editorList[editor.get_id()];
    var commandName = args.get_commandName();     
    var value = args.get_value();  
      
        if (commandName == "PasteFromWord"  
            || commandName == "PasteFromWordNoFontsNoSizes"  
            || commandName == "PastePlainText"  
            || commandName == "PasteAsHtml"  
            || commandName == "Paste" )  
        {  
            var textLength = CalculateLength (editor, value);  
            if (textLength >= maxTextLength)  
            {  
              alert('You are not able to type more than ' + maxTextLength + ' symbols!'); 
              args.set_cancel(true);  
  
            }  
        }   
 }  


//======================================================================================================
Rumen
Telerik team
 answered on 19 Aug 2010
1 answer
129 views
Hi,

I just deployed a new SharePoint solution provided to me, and as part of the deployment, I had to add all of the web.config entries to support the ASP.net AJAX 3.5 extensions.  When I try and run the web part, I get the following error on the page:

The base class includes the field 'RadEdiThreDesc', but its type (Telerik.Web.UI.RadEditor) is not compatible with the type of control (Telerik.Web.UI.RadEditor).

I have Telerk.Web.Design & Telerik.Web.UI version 2010.2.713.35 loaded into the GAC.  Is there some type of conflict going on here that I'm missing?  Is there an actual Telerik.Web.UI.RadEditor DLL that I need to deploy?    I should also note that I am running the RadEditor for SharePoint version 5.8.0 in this environment.

Thanks
Stanimir
Telerik team
 answered on 19 Aug 2010
2 answers
97 views
Good Day All

i have Successfully binded the Schedular from Objects and its looking Good and the Following code has done that

private void BindViewer()
  {
      VS.ViewerService obj = new VS.ViewerService();
      String SessionKey = obj.newSession();
      DateTime Date1 = Convert.ToDateTime("1980-01-01");
      DateTime Date2 = Convert.ToDateTime("2012-12-31");
      VS.extract extract = obj.getObjects(SessionKey, "Butt", Date1, false, Date2, false, "", "");
      try
      {
          RadPanelBar1.Items.Clear();
          RadScheduler1.Appointments.Clear();
          int Len = extract.set.Length;
          for (int i = 0; i < Len; i++)
          {
              VS.vertex value = extract.set[i];
              String PanelClass = value.meta;
              PanelClass = PanelClass.Replace(Remstr, "");
              PanelClass = PanelClass.Replace(Remstr2, "");
              Appointment app = null;
              if (value.atom != null)
              {
                  RadPanelItem pane = RadPanelBar1.Items.FindItemByText(PanelClass);
                  if (pane == null)
                  {
                      RadPanelItem nwpane = new Telerik.Web.UI.RadPanelItem(PanelClass);
                      RadPanelItem nwpaneSpliter = new Telerik.Web.UI.RadPanelItem(PanelClass);
                      nwpaneSpliter.IsSeparator = true;
                      RadPanelBar1.Items.Add(nwpane);
                      pane = nwpane;
                  }
                  if (value.meta == "za.co.abacus.C_EVENT")
                  {
                      app = new Appointment();
                  }
                  int atomLen = value.atom.Length;
                  for (int j = 0; j < atomLen; j++)
                  {
                      VS.atom atm = value.atom[j];
                      if (atm.meta.Contains("za.co.reactor.A_LABEL"))
                      {
                          RadPanelItem NewItem = new RadPanelItem(atm.content);
                          pane.Items.Add(NewItem);
                          if (app != null)
                          {
                              app.Subject = atm.content;
                              app.Description = atm.content;
                              app.ID = value.key;
                          }
                      }
                      if (app != null && atm.meta.Contains("za.co.abacus.C_EVENT"))
                      {
                          app.ID = atm.content;
                      }
                      if (app != null && atm.meta.Contains("za.co.reactor.A_HORIZON"))
                      {
                          app.Start = Convert.ToDateTime(atm.content);
                      }
                      if (app != null && atm.meta.Contains("za.co.reactor.AA_HORIZON"))
                      {
                          app.End = Convert.ToDateTime(atm.content);
                      }
                      if (app != null && atm.meta.Contains("za.co.reactor.A_TEXT"))
                      {
                          app.Description = atm.content;
                      }
                      if (app != null && atm.meta.Contains("za.co.reactor.A_TEXT"))
                      {
                          app.RecurrenceRule = atm.content;
                      }
                      if (app != null && app.End > app.Start)
                      {
                          RadScheduler1.DataStartField = app.Start.ToString();
                          RadScheduler1.DataSubjectField = app.Subject.ToString();
                          RadScheduler1.DataEndField = app.End.ToString();
                          RadScheduler1.DataKeyField = app.ID.ToString();
                          RadScheduler1.SelectedView = SchedulerViewType.MonthView;
                          RadScheduler1.SelectedDate = app.Start;
                          SlidingZone1.ExpandedPaneId = "RadSlidingPane1";
                     
                      }
                  }
              }
          }
      }
      catch (ApplicationException ex)
      {
      }
      finally
      {
          obj.closeSession(SessionKey);
      }
  }

Now with the same results i want  to bind a Hierachy Grid as it Shows in my attached image. I am using EAV that means the is no Fixed Column name, so the Binding of the Grid Should be Dynamically. 


Thank  you

Vuyiswa
Top achievements
Rank 2
 answered on 19 Aug 2010
2 answers
100 views

Good Day All

I have a Class that is defined like this

namespace EAVV
{
    public class EAV
    {
 
        private string _Attribute;
        private string _Value;
 
 
 
        public string Attribute
        {
            get
            {
                return _Attribute;
            }
 
            set
            {
                _Attribute = value;
            }
 
        }
 
        public string Value
        {
            get
            {
                return _Value;
            }
            set
            {
                _Value = value;
            }
 
        }
 
        public EAV(string AttributeEA, string ValueEA)
        {
            this._Attribute = AttributeEA;
            this._Value = ValueEA;
 
        }
 
        public EAV()
        {
 
 
        }
 
    }
}

And I have another one to process this like this

namespace EAVV
{
    public class EAVProcess
    {
 
        public List<EAV> GetRecords(List<string> ParentRecords,List<string> ChildRecords)
        {
          List<EAV> Final= new List<EAV>();
 
          for (int i = 0; i < ParentRecords.Count; i++)
          {
 
              for (int J = 0; J < ChildRecords.Count; J++)
              {
                  Final.Add(new EAV(ParentRecords[i], ChildRecords[J]));
              }
          }
 
          return Final;
        }
 
        public EAVProcess()
        {
        }
    }
}

And as you can see this will return a list. So I am binding my Grid(Telerik) which is the same as binding the normal asp.net grid like this

RadGrid1.DataSource = EAVobj.GetRecords(ParentRecordsRow, ChildRecordsField);
RadGrid1.DataBind();

And I get the Following Data

from the Image, You can see there is an Attribute Column and there is a Value Column, Now what i want to do is that i want to have only one Country and one Event in the Attribute and the Values must be nested underneath each other in a Grid, so basically i need a nested View and the Attribute is the parent and the Values will be grouped according to their parent.

Vuyiswa
Top achievements
Rank 2
 answered on 19 Aug 2010
5 answers
134 views
Hi, 

I have noticed that the RadScheduler fails to render all the dates in the column header in Chrome using timelineview mode. I have only tried with swedish culture standards.

It can be achieved by either:
1. Setting the TimelineView-ColumnHeaderDateFormat to "yyyy-MM-dd".
2. Settings the RadSchedulers Culture to sv-SE.

It works perfectly using american culture or date format.

Is this a known bug or is there any workaround?

Best regards,
Daniel
Peter
Telerik team
 answered on 19 Aug 2010
1 answer
303 views
Hello,

I'm trying to make use of the NeedDataSource event in order to bind the grid to a datasource that may cause a page timeout.  The data collection process is pretty hefty, and I need to be able to load everything on the page without having to wait for the grid to collect its data.  The html looks like this:

<

 

 

telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" >

 

<

 

 

asp:Image id="imgLoading" runat="server" ></asp:Image>

 

</

 

 

telerik:RadAjaxLoadingPanel>

 

<

 

 

telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">

 

<

telerik:RadGrid ID="CWGrid" runat="server" Width="100%" OnNeedDataSource="CWGrid_NeedDataSource" >

 

</

 

 

telerik:RadGrid>

 

</

 

 

telerik:RadAjaxPanel>

 



And in the Need Data Source:

public

 

 

void CWGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)

 

{

 

 

DataSet objSD = SetData();

 

 

 

if (objDS.Tables.Count > 0)

 

CWGrid.DataSource = objDS;

}



SetData() is where the data collection occurs, and sometimes causes a page timeout.   Please let me know what I'm missing.
Maria Ilieva
Telerik team
 answered on 19 Aug 2010
7 answers
194 views
Hi Telerik,

i am having problem to findcontrol in the itemTemplate. is there anyway i can call the label in the itemTemplate ? i am using visual studio 2008 with vb.net

Best Regards,
ER AN
Daniel
Telerik team
 answered on 19 Aug 2010
1 answer
42 views
Hi,
    I have basic rad grid set up with exporting option, but the number of columns in rad grid is more than 100. I cannot export all the columns and its data but just few. Help me
Daniel
Telerik team
 answered on 19 Aug 2010
1 answer
152 views
Hello,

If I have a radtabstrip attached to a radmultipage by setting multipageid, by default does the tabs attach to the page view at the same index, or do I have to explicitly set PageViewID?

If not defaulting by index, I would like to submit that as a control enhancement, that the pageview at index 0 be automatically linked to the tab at index 0, and so on.

Thanks.
Yana
Telerik team
 answered on 19 Aug 2010
2 answers
152 views
Hello,

I used a RadRotator for a images gallery, with the "RotatorType=ButtonsOver", but after a few itens the images start to go off the area.
In the demos could also replicate the problem (attach the capture to check the issue).
Is there any solution or work around to solve this?

Thanks,
Joaquim Oliveira
Dep. Desenvolvimento
Top achievements
Rank 2
 answered on 19 Aug 2010
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?