c# – DetailsView仅在2次点击后才更新和更改,取消不显示readonl
我创建了一个在日历中选择日期后出现的详细信息视图.此详细信息视图通过代码后面的select语句填充.这是我的问题列表:
>我必须在编辑按钮上单击两次以在编辑模式下获取详细信息视图. 代码隐藏: 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" /> 解决方法
您的问题出在DetailView1_ModeChanging中
从MSDN起 你需要使用Item Command事件 protected void DetailsView1_ItemCommand(object sender,DetailsViewCommandEventArgs e) { if (e.CommandName == "Edit") { DetailsView1.ChangeMode(DetailsViewMode.Edit); } } 编辑: protected void DetailView1_ModeChanging(Object sender,DetailsViewModeEventArgs e) { if (e.NewMode == DetailsViewMode.Edit) { DetailsView1.ChangeMode(e.NewMode); DetailsView1.Datebind(); // add this and check } if (e.CancelingEdit) { DetailsView1.ChangeMode(DetailsViewMode.ReadOnly); DetailsView1.Datebind(); // add this and check } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |