早上好,我是Dev Express和剃须刀页面的新手。
我有一个带有用户列表的dev Extreme数据网格,一个用户具有一个用户类型,该用户类型具有用户ID的最小范围和最大范围。
我想要在datagrid的标准编辑表单上的列上设置范围验证规则,因此当您添加新的用户ID时,用户ID应该介于1到49999之间。范围存储在数据库。因此,用户首先选择用户类型,用户类型表中将有一个范围,例如,“雇员”用户类型的范围将为最小1到最大49999,该范围我想用作表单上的验证。 / p>
当前我的DevExtreme数据网格代码:
@(Html.DevExtreme().DataGrid<ACS.LIB.BE.User>().ID("userGrid")
.ElementAttr(new { @class = "dx-card wide-card" })
.DataSource(d => d.Mvc().Controller("User")
.LoadAction("Get").Key("ID")
.InsertAction("InsertUser")
.UpdateAction("UpdateUser")
.DeleteAction("DeleteUser"))
.ShowBorders(false)
.FilterRow(f => f.Visible(true))
.FocusedRowEnabled(true)
.FocusedRowIndex(0)
.ColumnAutoWidth(true)
.ColumnHidingEnabled(true)
.Columns(columns =>
{
columns.AddFor(m => m.ID).ValidationRules(val => val.AddRange().Min(100));
columns.AddFor(m => m.Name);
columns.AddFor(m => m.UserType.ID).Lookup(lookup => lookup
.DataSource(ds => ds.WebApi().Controller("UserType").LoadAction("Get").Key("ID"))
.DisplayExpr("Name")
.ValueExpr("ID")
).Caption("User Type");
columns.AddFor(m => m.Department.ID).Lookup(lookup => lookup
.DataSource(ds => ds.WebApi().Controller("Department").LoadAction("Get").Key("ID"))
.ValueExpr("ID")
.DisplayExpr("Name")
).Caption("Department");
columns.AddFor(m => m.Company.ID).Lookup(lookup => lookup
.DataSource(ds => ds.WebApi().Controller("Company").LoadAction("Get").Key("ID"))
.ValueExpr("ID")
.DisplayExpr("Name")
).Caption("Company");
columns.AddFor(m => m.Authority);
columns.AddFor(m => m.Email).ValidationRules(v => v.AddEmail().Message("Please enter a valid email address. yourname@yourdomain.com"));
columns.AddFor(m => m.Active).FilterValue(true);
})
我遇到问题的那一行是columns.AddFor(m => m.ID).ValidationRules(val => val.AddRange().Min(100));
Min(100)我想从一个不像现在这样硬编码的数据源中动态设置它,用户首先选择Usertype,然后我要使用UserType表来获取ID应位于的范围。所以我想从用户表中获取100,但是我不确定语法是什么还是应该怎么做。
任何帮助或指点将不胜感激。
答案 0 :(得分:0)
似乎您需要定义一个custom validation rule。您可以使用validationCallback函数中的 options.data 参数获取用户类型值。
请注意,最佳的ASP.NET Core做法是使用模型属性'Data Annotation validation attributes。 DevExtreme ASP.NET Core组件支持它们。
您可以在Implement a Custom Validation Rule主题中找到代码段。