在asp.net Web表单中更新gridview行数据时验证新数据出错?

时间:2014-01-31 20:59:36

标签: c# asp.net entity-framework

我正在使用asp.net创建简单的Web表单应用程序,用于使用实体框架注册患者数据。我使用动态数据字段轻松验证基于Microsoft Sql Server数据类型的可编辑数据并且允许

Data Table

我的实体数据源和数据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值的字段时,在验证摘要显示如下之前会出现错误 enter image description here

我想知道在使用动态字段更新数据网格视图行时如何验证新数据。

1 个答案:

答案 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