2011-02-01 5 views
0

Je cette zone de texte sur la page:redimensionnement automatique Html.TextBoxFor

<%= Html.TextBoxFor(m => m.STPData.ProjectName, new { @class = "economicTextBox", disabled="disabled", propertyName = "STPData.ProjectName", onchange = "UpdateField(this);" })%> 

Comment puis-je faire de cette façon à chaque fois qu'il le rend correspond au texte entré?

Répondre

0

À moins d'utiliser une police à espacement fixe comme un nouveau correcteur, vous ne pouvez pas prédire combien de px il faudra. Mais vous pouvez toujours estimer, 10 pixels par caractère ou similaire. Ensuite, certains utilisateurs ont de grandes polices que vous ne pouvez pas détecter, et tout semble mal ... Je vous suggère de repenser cette fonctionnalité, de la perspective UX ou des défis technologiques!

Peut-être quelque chose comme ça, avec la méthode d'aide qui multiplie la longueur de chaîne avec des pixels moyenne par char (10?):

<%= Html.TextBoxFor(m => m.STPData.ProjectName, 
    new { @class = "economicTextBox", 
    style="width:"+Helper.PixelsForString(m.STPData.ProjectName,10)+"px;", 
    disabled="disabled", 
    propertyName = "STPData.ProjectName", 
    onchange = "UpdateField(this);" })%> 
+0

En fait, ce que je changerais juste que ce soit une étiquette à la place? – slandau

+0

Étiquette? Avez-vous besoin de changer de texte? Est-ce que le poste forme? De plus, il n'y a pas de contrôle d'étiquette dans MVC, vous écrivez du texte dans Span ou Div –

Questions connexes