Моего решения немного отличается от требований Павла.
В файле DynamicData \ PageTemplates \ Insert.aspx.cs Я внедрил изменения, чтобы показывать мои значения по умолчанию для новых записей в любой таблице, имеющей общие поля. Пользователь все равно может добавить что-то еще вставить.
public partial class Insert : System.Web.UI.Page
{
protected MetaTable table;
protected void Page_Init(object sender, EventArgs e)
{
table = DynamicDataRouteHandler.GetRequestMetaTable(Context);
var values = table.GetColumnValuesFromRoute(Context);
// set default values for meta data of new records across all tables
// unknown values will be skipped
values.Add("creationDate", DateTime.Now);
values.Add("modificationDate", DateTime.Now);
values.Add("modificationUser", HttpContext.Current.User.Identity.Name.Substring(
HttpContext.Current.User.Identity.Name.IndexOf("\\") + 1));
FormView1.SetMetaTable(table, values);
DetailsDataSource.EntityTypeFilter = table.EntityType.Name;
}
[...]
}
Для редактирования записей с существующими значениями, я внес изменения в некоторые DynamicData \ FieldTemplates файлов.
public partial class Text_EditField : System.Web.DynamicData.FieldTemplateUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
// ...
// show current user as value for the modification user upon editing records
if (Column.Name == "modificationUser")
{
FieldValue = Page.User.Identity.Name.Substring(Page.User.Identity.Name.IndexOf("\\") + 1);
}
}
[...]
}
Он покажет обновленное значение на странице для редактирования, но после обновления изменения не будут сохраняться! Требуется дополнительное изменение шаблона страницы редактирования:
protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
// make sure a meta data update is always triggered by setting a different old value
// required for the edit components
if (e.OldValues.Contains("modificationUser"))
{
e.OldValues["modificationUser"] = string.Empty;
e.OldValues["modificationDate"] = DateTime.MinValue;
}
}
Более подробное объяснение того, что вы делаете: [Обновление значений до вставки на веб-сайте динамических данных ASP.NET с использованием платформы Entity Framework] (http://batesits.com/tag/dynamic-data/) – ofthelit