我在页面上有这个文本框:
<%= Html.TextBoxFor(m => m.STPData.ProjectName, new { @class = "economicTextBox", disabled="disabled", propertyName = "STPData.ProjectName", onchange = "UpdateField(this);" })%>
如果每次渲染它都符合输入的文本,我怎么能这样做?
答案 0 :(得分:0)
除非您使用像currier new这样的等宽字体字体,否则无法预测需要多少px。但你总能估计,每个字符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);" })%>