我正在使用asp.net创建简单的Web表单应用程序,用于使用实体框架注册患者数据。我使用动态数据字段轻松验证基于Microsoft Sql Server数据类型的可编辑数据并且允许
我的实体数据源和数据gridview的Aspx代码是
<asp:EntityDataSource ID="EntityDataSource1" runat="server" ContextTypeName="WebApplication4.PediatricDbEntities" EnableDelete="True" EnableFlattening="False" EnableInsert="True" EnableUpdate="True" EntitySetName="Patients" EntityTypeFilter="Patient">
</asp:EntityDataSource>
<br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="PatientID" DataSourceID="EntityDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
<asp:DynamicField DataField="PatientID" HeaderText="PatientID" ReadOnly="True" SortExpression="PatientID" />
<asp:DynamicField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:DynamicField DataField="BirthDate" HeaderText="BirthDate" SortExpression="BirthDate" />
<asp:DynamicField DataField="Sex" HeaderText="Sex" SortExpression="Sex" />
<asp:DynamicField DataField="Location" HeaderText="Location" SortExpression="Location" />
<asp:DynamicField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
</Columns>
</asp:GridView>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
CS代码背后
protected void Page_init(object sender, EventArgs e)
{
GridView1.EnableDynamicData(typeof(Patient));
}
但是,当我尝试编辑数据并设置不允许null为null值的字段时,在验证摘要显示如下之前会出现错误
我想知道在使用动态字段更新数据网格视图行时如何验证新数据。
答案 0 :(得分:0)
可以通过针对您的对象设置MetadataTypes
来完成此操作。
作为名称字段的示例..
[MetadataType(typeof(PatientMetadata))]
public partial class Patient
{
public class PatientMetadata
{
[Required]
public string Name { get; set; }
....
}
}
此处提供演练:
http://msdn.microsoft.com/en-us/library/cc488549(VS.100).aspx