2009-04-09 9 views
2

J'utilise Telerik RadEditor (Q1 2009 SP1) dans notre projet ASP.NET MVC (RTM). L'éditeur fonctionne très bien lorsqu'il est rendu en tant qu'objet codé en dur sur la page avec un ID statique. Mais lors de l'extension avec un HtmlHelper pour faire une création dynamique en passant dans un Id il semble que le html soit tout en minuscules pour le tag. Est-ce que l'objet HtmlHelper gâte ça par hasard? Les attributs regardent respectivement les majuscules et les minuscules, mais cela semble étrange. Voici mon code .... merci d'avance!Création de RadEditor dynamique via HtmlHelper

   <% if (placeholder.Type.ToLower() == "richtext") { %> 
        <%= Html.RadEditor("placeholder_" + placeholder.Name) %> 
       <% } else { %> 
        <%= Html.TextBox("placeholder_" + placeholder.Name, null, new { @class = placeholder.Type }) %> 
       <% } %> 

L'aide ressemble à ceci ....

public static string RadEditor(this HtmlHelper html, string Id) 
    { 
     var sb = new StringBuilder(); 

     sb.Append("<telerik:RadEditor ID='" + Id + "' Runat='server' DialogHandlerUrl='~/Telerik.Web.UI.DialogHandler.axd'>"); 
     sb.Append("<Content>"); 
     sb.Append("</Content>"); 
     sb.Append("</telerik:RadEditor>"); 

     return sb.ToString(); 
    } 
+0

Firebug rend comme suit .... noter comment le telerik: tag radeditor est tout en minuscules par rapport à l'aide dodegaard

Répondre

2

Pour l'instant vous ne pouvez pas rendre RadEditor sans avoir un objet Page valide avec un ScriptManager. Nous (Telerik) envisage d'ajouter un support pour le rendu "autonome" dans un proche avenir. Devrait être annoncé dans un blog, alors restez à l'écoute.

+0

merci. J'ai réussi à contourner le problème en utilisant un iFrame que je posterai ici et sur le site de telerik pour que d'autres puissent l'utiliser. Je pense que htmlHelpers aidera tous à utiliser ces contrôles impressionnants dans MVC. – dodegaard

1

Le problème est la balise est un contrôle côté serveur. Lorsque vous le placez en dur dans votre page, la balise côté serveur est convertie en html. Lorsque vous utilisez htmlhelper, vous publiez le fichier html et il n'est pas traité en tant que balise côté serveur.

Si vous voulez faire quelque chose de dynamique, vous devez utiliser un UserControl (fichier .ascx), puis utiliser la méthode Html.RenderPartial.

Questions connexes