2011-05-31 122 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