2011-05-31 126 views
0

我正在使用具有DetailsView的EntityDataSource。实体框架默认值

如何在插入新项目时将可空布尔字段之一默认为“checked”?

<asp:CheckBoxField DataField="MyBoolColumn" HeaderText="Bool" /> 

我试图设置在数据库中,实体的属性默认值的默认值,并通过在实体的构造函数中设置默认值:

public partial class MyEntity 
    { 
    public MyEntity() 
    { 
      this._MyBoolColumn= true; 
    } 

回答

1

如果你想要检查此字段,必须在ASP.NET页面中将其设置为默认值,或将其设置在后面的代码中(处理数据源中的InsertingUpdating事件),因为您的更改会被页面中未选中的复选框的false覆盖。但是,如果在页面上不可见时将任何复选框默认设置为true,那么这很奇怪,而且非常不友好。

+0

但CheckBoxField没有'checked'或'defaultvalue'属性,所以我无法设置它。也没有ID属性(所以我不能使用FindControl)。 – simon831 2011-05-31 14:42:17

+0

您确实可以找到该复选框并将其值设置为选中状态。控件提供的事件可以让您修改数据绑定记录,您可以在其中找到控件并设置所需的任何内容。例如'GridView'提供[RowDataBound](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx)。我记得当我们使用网页表单时,我们经常使用它。 – 2011-05-31 14:47:46

+0

这是一个asp:CheckBoxField。它没有ID属性。我怎样才能使用FindControl方法? – simon831 2011-05-31 16:25:41