У меня есть следующая модель:
public class FacturaIntrareModel
{
private List<DetaliiFacturaIntrareModel> _produse = new List<DetaliiFacturaIntrareModel>();
public List<DetaliiFacturaIntrareModel> Produse
{
get { return _produse; }
set { _produse = value; }
}
}
public class DetaliiFacturaIntrareModel
{
[Range(0, double.MaxValue, ErrorMessage = "The Discount must have positive values!")]
public decimal Discount { get; set;}
}
Код для привязки такой:
@model FacturaIntrareModel
@using DevExpress.Data
@Html.DevExpress().GridView(settings =>
{
settings.Columns.Add(col =>
{
col.FieldName = produsId;
col.Caption = "Discount";
col.ColumnType = MVCxGridViewColumnType.Default;
col.SetDataItemTemplateContent
(c =>
{
string idProdus = DataBinder.Eval(c.DataItem, produsId).ToString();
var index = Model.Produse.FindIndex(y => y.IdProdus.ToString() == idProdus);
ViewContext.Writer.Write
(
@Html.TextBoxWithCustomHtmlAttributesFor(x => x.Produse[index].Discount, new { @onchange = "setDiscountProdus(" + idProdus + ", $(this).val())", @style = textBoxWitxh }).ToHtmlString()
+
@Html.ValidationImageWithTooltipFor(x => x.Produse[index].Discount).ToHtmlString()
);
}
);
col.Width = texBoxColWidth;
col.CellStyle.HorizontalAlign = textBoxColAlign;
});
}
).Bind(Model.Produse).GetHtml()
HTML-код, сгенерированный для СКИДКИ:
<input data-type="decimal" id="Produse_1__Discount" name="Produse[1].Discount" onchange="setDiscountProdus(2, $(this).val())" style="width:40px;" type="text" value="2">
<div class="field-validation-valid" data-valmsg-for="Produse[1].Discount" data-valmsg-replace="true"></div>
Аннотации html для аннотации RANGE
не созданы.
@HtmlTextBoxFor
, и он отрендерил это<input type="text" value="" name="Discount" id="Discount" data-val-required="The Discount field is required." data-val-range-min="0" data-val-range-max="1.79769313486232E+308" data-val-range="The Discount must have positive values!" data-val-number="The field Discount must be a number." data-val="true" class="input-validation-error">
- person Yasser Shaikh   schedule 31.07.2012