Авторазмер Html.TextBoxFor - PullRequest
       6

Авторазмер Html.TextBoxFor

0 голосов
/ 01 февраля 2011

У меня есть это текстовое поле на странице:

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

Как сделать так, чтобы каждый раз, когда он отображался, он соответствовал введенному тексту?

1 Ответ

0 голосов
/ 01 февраля 2011

Если вы не используете какой-либо моноширинный шрифт, например, currier new, вы не сможете предсказать, сколько пикселей потребуется. Но вы всегда можете оценить, 10 пикселей на символ или подобное. Тогда у некоторых пользователей есть большие шрифты, которые вы не можете обнаружить, и все выглядит неправильно ... Я предлагаю вам переосмыслить эту функцию с точки зрения UX или технических проблем!

Может быть, что-то вроде этого, с вспомогательным методом, который умножает длину строки на среднее количество пикселей на символ (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);" })%>
...