DevExpress GridView EditFormTemplate密码字段
我正在使用DevExpress GridView弹出式编辑表单。 在我的型号中,密码和确认密码字段是必需的。当用户编辑记录时,我使用下面给定的标记将控件标记为可见或不可见,因为管理员用户在创建用户后不允许更改密码,但我的modelState仍然无效,并表示即使密码不可见,在编辑模式下也需要密码 我正在使用MVC扩展19.1DevExpress GridView EditFormTemplate密码字段,gridview,passwords,devexpress,mvcextensions,Gridview,Passwords,Devexpress,Mvcextensions,我正在使用DevExpress GridView弹出式编辑表单。 在我的型号中,密码和确认密码字段是必需的。当用户编辑记录时,我使用下面给定的标记将控件标记为可见或不可见,因为管理员用户在创建用户后不允许更改密码,但我的modelState仍然无效,并表示即使密码不可见,在编辑模式下也需要密码 我正在使用MVC扩展19.1 Html.DevExpress().FormLayout(settings => { var rlUserId
Html.DevExpress().FormLayout(settings =>
{
var rlUserId = Convert.ToInt32(DataBinder.Eval(c.DataItem, "RLUserId"));
settings.Name = "FormLayoutRLUsers";
settings.Width = Unit.Percentage(100);
settings.SettingsAdaptivity.AdaptivityMode =
FormLayoutAdaptivityMode.SingleColumnWindowLimit;
settings.SettingsAdaptivity.SwitchToSingleColumnAtWindowInnerWidth = 700;
settings.ColCount = 2;
settings.Items.Add(i =>
{
i.FieldName = "LastName";
i.NestedExtension().TextBox(tx =>
{
AssignTextBoxSettings(tx);
});
});
settings.Items.Add(i =>
{
i.FieldName = "FirstName";
i.NestedExtension().TextBox(tx =>
{
AssignTextBoxSettings(tx);
});
});
settings.Items.Add(i =>
{
i.FieldName = "Password";
i.NestedExtension().TextBox(tx =>
{
tx.Properties.Password = true;
if (rlUserId > 0)
{
i.Visible = false;
tx.ClientVisible = false;
}
else
{
i.Visible = true;
AssignTextBoxSettings(tx);
tx.ClientVisible = true;
}
});
});
settings.Items.Add(i =>
{
i.FieldName = "ConfirmPassword";
i.NestedExtension().TextBox(tx =>
{
tx.Properties.Password = true;
if (rlUserId > 0)
{
i.Visible = false;
tx.ClientVisible = false;
}
else
{
i.Visible = true;
AssignTextBoxSettings(tx);
tx.ClientVisible = true;
}
});
});
settings.Items.Add(i =>
{
i.ShowCaption = DefaultBoolean.False;
}).SetNestedContent(() =>
{
ViewContext.Writer.Write("<div style='float:right'>");
Html.DevExpress().Button(btnSettings =>
{
btnSettings.Name = "btnUpdate";
btnSettings.Text = "Update";
btnSettings.ClientSideEvents.Click = "function(s, e){ gridView.UpdateEdit(); }";
}).Render();
Html.DevExpress().Button(btnSettings =>
{
btnSettings.Name = "btnCancel";
btnSettings.Text = "Cancel";
btnSettings.Style[HtmlTextWriterStyle.MarginLeft] = "5px";
btnSettings.ClientSideEvents.Click = "function(s, e){ gridView.CancelEdit(); }";
}).Render();
ViewContext.Writer.Write("</div>");
});
}).Bind(ViewData["EditableUser"] ?? GetEditingUser(c.Grid))
.Render();
Html.DevExpress().FormLayout(设置=>
{
var rlUserId=Convert.ToInt32(datainder.Eval(c.DataItem,“rlUserId”);
settings.Name=“formlayoutrusers”;
设置宽度=单位百分比(100);
settings.SettingsAdaptivity.AdaptivityMode=
FormLayoutAdaptivityMode.SingleColumnWindowLimit;
settings.SettingsAdaptivity.SwitchToSingleColumnAtWindowInnerWidth=700;
settings.ColCount=2;
settings.Items.Add(i=>
{
i、 FieldName=“LastName”;
i、 NestedExtension().TextBox(tx=>
{
分配文本框设置(tx);
});
});
settings.Items.Add(i=>
{
i、 FieldName=“FirstName”;
i、 NestedExtension().TextBox(tx=>
{
分配文本框设置(tx);
});
});
settings.Items.Add(i=>
{
i、 FieldName=“密码”;
i、 NestedExtension().TextBox(tx=>
{
tx.Properties.Password=true;
如果(rlUserId>0)
{
i、 可见=假;
tx.ClientVisible=false;
}
其他的
{
i、 可见=真实;
分配文本框设置(tx);
tx.ClientVisible=true;
}
});
});
settings.Items.Add(i=>
{
i、 FieldName=“ConfirmPassword”;
i、 NestedExtension().TextBox(tx=>
{
tx.Properties.Password=true;
如果(rlUserId>0)
{
i、 可见=假;
tx.ClientVisible=false;
}
其他的
{
i、 可见=真实;
分配文本框设置(tx);
tx.ClientVisible=true;
}
});
});
settings.Items.Add(i=>
{
i、 ShowCaption=DefaultBoolean.False;
}).SetNestedContent(()=>
{
ViewContext.Writer.Write(“”);
Html.DevExpress()按钮(BTN设置=>
{
btnSettings.Name=“btnUpdate”;
btnSettings.Text=“更新”;
btnSettings.ClientSideEvents.Click=“函数(s,e){gridView.updatedit();}”;
}).Render();
Html.DevExpress()按钮(BTN设置=>
{
btnSettings.Name=“btnCancel”;
btnSettings.Text=“取消”;
btnSettings.Style[HtmlTextWriterStyle.MarginLeft]=“5px”;
btnSettings.ClientSideEvents.Click=“函数(s,e){gridView.CancelEdit();}”;
}).Render();
ViewContext.Writer.Write(“”);
});
}).Bind(ViewData[“EditableUser”]??GetEditingUser(c.Grid))
.Render();
有许多解决方案,如: