我创建了一个详细视图,在选定日期后显示。这个详细视图通过后台代码中的select语句填充。以下是我遇到的问题列表:
- 我必须两次点击编辑按钮才能将详细视图设置为编辑模式。
- 一旦进入编辑模式,我可以看到更新和取消按钮,但我还必须再次点击取消按钮才能返回只读状态。
- 当我处于编辑模式时,有3行可以进行编辑,当我在只读模式下两次按取消时,这3行的值不再显示,它们只是空字段,尽管数据仍然存在于数据库中。
- 当我在编辑模式下更改某些内容并按更新时,我的详细视图就会消失。
后台代码:
protected void DetailView1_ModeChanging(Object sender, DetailsViewModeEventArgs e)
{
if (e.NewMode == DetailsViewMode.Edit)
{
DetailsView1.ChangeMode(e.NewMode);
}
if (e.CancelingEdit)
{
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);
}
}
protected void DetailView1_ItemUpdating(Object sender, DetailsViewUpdateEventArgs e)
{
DetailsView1.DataBind();
}
protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
{
DetailsView1.DataBind();
}
标记语言:
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
OnModeChanging="DetailView1_ModeChanging" OnItemUpdating="DetailView1_ItemUpdating"
OnItemUpdated="DetailsView1_ItemUpdated"
AllowPaging="True" PageSize="5" HeaderText="Agenda" CellPadding="10"
ForeColor="#333333" />
OnItemCommand="DetailsView1_ItemCommand
并使用了您上面写下的代码。起初,我把所有的代码都放在文本中,然后我收到了消息,它正在触发未处理的 ModeChanging 事件,所以我把那个方法作为代码重新使用了一遍。问题仍然存在,我仍然需要点击两次才能进入编辑模式,而且编辑也无法正常工作。 - Dieter