我目前在我的kendo网格中遇到问题。我有多个十进制类型的列。问题是当我想对这些列使用numerictextBox时,我应该为n列创建n个编辑器模板,因为numericTextBox的.Name("")属性。
有没有办法只使用一个通用模板绑定numericTextBox?或者我怎样才能避免创建只有name属性变化的多个editorTemplate文件?
感谢您的帮助。
这是我的网格:
<% Html.Kendo().Grid<myModel>()
.Name("grid")
.Events(events =>
{
events.Save("onSaveObject");
})
.Columns(columns =>
{
columns.Bound(r => r.NAME).Title("Name");
columns.Bound(r => r.SIZE).Title("SIZE").EditorTemplateName("SIZEEditor");
columns.Bound(r => r.SIZE1).Title("SIZE1").EditorTemplateName("SIZE1Editor");
columns.Bound(r => r.SIZE2).Title("SIZE1").EditorTemplateName("SIZE2Editor");
columns.Bound(r => r.SIZE3).Title("SIZE1").EditorTemplateName("SIZE3Editor");
columns.Bound(r => r.SIZE4).Title("SIZE1").EditorTemplateName("SIZE4Editor");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
})
..
%>
SIZEEditor.ascx
<%: Html.Kendo().NumericTextBox<decimal>()
.Name("SIZE")
.HtmlAttributes(new { value = "#=SIZE #" })
.Format("{0:n1}")
.Culture("fr-FR")
.Min(0)
.Max(500)
.Decimals(1)
%>
SIZE1Editor.ascx
<%: Html.Kendo().NumericTextBox<decimal>()
.Name("SIZE1")
.HtmlAttributes(new { value = "#=SIZE1 #" })
.Format("{0:n1}")
.Culture("fr-FR")
.Min(0)
.Max(500)
.Decimals(1)
%>
SIZE2Editor.ascx
<%: Html.Kendo().NumericTextBox<decimal>()
.Name("SIZE2")
.HtmlAttributes(new { value = "#=SIZE2 #" })
.Format("{0:n1}")
.Culture("fr-FR")
.Min(0)
.Max(500)
.Decimals(1)
%>
感谢您的帮助
答案 0 :(得分:1)
您的编辑器模板指定其名称,因此它将为输入元素而不是动态名称呈现静态名称。
像这样更改您的编辑器模板
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<decimal?>" %>
<%: Html.Kendo().NumericTextBoxFor(m => m)
.Format("{0:n1}")
.Culture("fr-FR")
.Min(0)
.Max(500)
.Decimals(1)
%>
答案 1 :(得分:0)
感谢Dio Dirza的帮助。这样做了。我只更改了模板的“Inherits”值。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<decimal?>" %>
<%: Html.Kendo().NumericTextBoxFor(m=>m)
.Format("{0:n2}")
.Culture("fr-FR")
.Min(-50)
.Max(100000)
.Decimals(2)
%>