以下は、dev Express グリッド ビュー編集テンプレートで使用しているコンボ ボックス コードです。編集時ではなく、新しい従業員を追加するときに、コンボボックスに何も表示しないか、「選択して従業員にしてください」という文字列を表示したい。
@Html.DevExpress().ComboBox(edtSettings =>
{
edtSettings.Width = 200;
edtSettings.Name = "EmployeeID";
//edtSettings.Properties.TextField = "FirstName";
edtSettings.Properties.ValueField = "EmployeeID";
edtSettings.Properties.ValueType = typeof(int);
edtSettings.Properties.DropDownStyle = DropDownStyle.DropDownList;
edtSettings.ShowModelErrors = true;
edtSettings.Properties.TextFormatString = "{0}" + " " + "{1}";
edtSettings.Properties.Columns.Add("FirstName", "First Name", 150);
edtSettings.Properties.Columns.Add("LastName", "Last Name", 150);
//--- For client side validations
edtSettings.Properties.ValidationSettings.RequiredField.IsRequired = true;
edtSettings.Properties.ValidationSettings.RequiredField.ErrorText = "An Employee must be selected from the list.";
}).BindList(Model.NonUsers).Bind(Model.UserSingle.EmployeeID).GetHtml()
次のように、とりわけ適切な Model.UserSingle を渡すためにこれを行います
var User = ViewData["UserDetail"] != null
? ViewData["UserDetail"]
: !c.Grid.IsNewRowEditing
? Model.UserList.FirstOrDefault(m => m.EmployeeID == Convert.ToInt32(DataBinder.Eval(c.DataItem, "EmployeeID")))
: new User
{
SiteID = (int)Session["siteID"],
////employee ID cant set to blank, keeps adding a zero
//EmployeeID = Convert.ToInt32(null),
//this is defaulted to 'Timesheet Only'
UserGroupID = 3
};
Model.UserSingle = (User)User;