实体框架默认值
问题描述:
我正在使用具有DetailsView的EntityDataSource。实体框架默认值
如何在插入新项目时将可空布尔字段之一默认为“checked”?
<asp:CheckBoxField DataField="MyBoolColumn" HeaderText="Bool" />
我试图设置在数据库中,实体的属性默认值的默认值,并通过在实体的构造函数中设置默认值:
public partial class MyEntity
{
public MyEntity()
{
this._MyBoolColumn= true;
}
答
如果你想要检查此字段,必须在ASP.NET页面中将其设置为默认值,或将其设置在后面的代码中(处理数据源中的Inserting
和Updating
事件),因为您的更改会被页面中未选中的复选框的false覆盖。但是,如果在页面上不可见时将任何复选框默认设置为true,那么这很奇怪,而且非常不友好。
但CheckBoxField没有'checked'或'defaultvalue'属性,所以我无法设置它。也没有ID属性(所以我不能使用FindControl)。 – simon831 2011-05-31 14:42:17
您确实可以找到该复选框并将其值设置为选中状态。控件提供的事件可以让您修改数据绑定记录,您可以在其中找到控件并设置所需的任何内容。例如'GridView'提供[RowDataBound](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx)。我记得当我们使用网页表单时,我们经常使用它。 – 2011-05-31 14:47:46
这是一个asp:CheckBoxField。它没有ID属性。我怎样才能使用FindControl方法? – simon831 2011-05-31 16:25:41