我使用DetailsView控件(C#4.0)添加带有EntityDataSource控件的记录。有些字段需要添加,我不想在DetailsView控件中显示 - 例如DateAdded和UserId - 这些字段应该自动添加。
<asp:EntityDataSource ID="edsTasks" runat="server"
ContextTypeName="EKIMV2_MasterModel.EKIMV2_MasterEntities"
EnableFlattening="False" EnableInsert="True"
EntitySetName="tasks" ConnectionString="name=EKIMV2_MasterEntities"
DefaultContainerName="EKIMV2_MasterEntities">
</asp:EntityDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px"
DataSourceID="edsTasks" DefaultMode="Insert"
AutoGenerateRows="False" DataKeyNames="task_id"
oniteminserted="DetailsView1_ItemInserted"
oniteminserting="DetailsView1_ItemInserting">
<Fields>
<asp:BoundField DataField="task_name" HeaderText="task_name"
SortExpression="task_name" />
<asp:BoundField DataField="task_desc" HeaderText="task_desc"
SortExpression="task_desc" />
<asp:TemplateField HeaderText="assigned_to" SortExpression="assigned_to">
<InsertItemTemplate>
<asp:DropDownList ID="ddlUsers" runat="server" DataSourceID="edsUsers" DataTextField="UserName" DataValueField="UserId"></asp:DropDownList>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("assigned_to") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" ShowCancelButton="False"
ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
如上所示,没有DateAdded字段。我想自动将此值设置为今天的日期。用户无需添加值或完全查看字段。我想自动设置其他字段,但是没有太多细节,我认为DateAdded字段提供了一个很好的例子。
我想我需要以某种方式在ItemInserting事件中添加额外的字段,但我不知道从哪里开始。
protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
}
我在其他地方读过,也许我需要在DetailsView中保留额外的字段但是隐藏它们?这是对的,这似乎不是正确的事情。
那么可以将值添加到实际上不在DetailsView中的字段吗?
答案 0 :(得分:0)
所以答案在于隐藏DetailsView中的字段,方法是将它们转换为TemplateFields,然后在模板中使用HiddenField。
然后你需要处理DetailsView1_ItemInserting()事件,如下所示:
protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
e.Values["date_submitted"] = DateTime.Now.ToShortDateString();
}
事件接收DetailsViewInsertEvenrArgs(“e”),其中包含名为Values的字典对象。值包含在我的情况下传递回数据源控件(EntityDataSource)的数据。