我正在使用ASP.NET MVC 4和Kendo UI CurrencyTextBox来帮助在视图上显示表单上的数字。 Kendo不提供标准的文本框控件,因此对于非数字文本框,我使用@ Html.EditorFor。 Kendo提供了css中包含的一些“主题”,我使用的是kendo.default.min.css。很明显,我希望我的表单看起来一致,并且所有控件(Kendo与否)看起来都一样。阅读类似帖子,Telerik工作人员建议在文本框中添加“k-textbox”类,因为我们使用的是EditorFor而不是TextboxFor,我们不能直接应用HTMLAttributes,但我们可以将该字段包装在div中,以便它可以继承样式。
视图的代码如下:
<div class="editor-field">
@Html.LabelFor(m => m.illus_LoanAmount)
@(Html.Kendo().CurrencyTextBoxFor(m => m.illus_LoanAmount)
.Spinners(false)
.Format("{0:£#,##0;(£#,##0)}"))
@Html.ValidationMessageFor(m => m.illus_LoanAmount)
</div>
<div class="editor-field">
@Html.LabelFor(m => m.illus_RepaymentType)
<div class="k-textbox">
@Html.EditorFor(m => m.illus_RepaymentType)
</div>
@Html.ValidationMessageFor(m => m.illus_RepaymentType)
</div>
下面看起来'排序'是正确的,但绝不是像素完美的,因此无法接近生产。我确定这不是我自己的CSS的结果,也尝试使用TextboxFor的内联样式,仍然没有运气。
我的解决方案是彻底剥离剑道CSS样式 - 但这看起来有点遗憾。有没有人有像Kendo / Telerik那样制作标准控件的经验?