我会解释我的问题。 所以我有一个带有2个entityDataSource的asp页面。 - 第一个用于填写我的obout表:
<asp:EntityDataSource ID="EntityDataSource1" ContextTypeName="RichDataBusinessApplication.Web.RichDataEntities" EnableFlattening="false" EnableInsert="true"
EnableUpdate="true" EnableDelete="true" EntitySetName="UserInformations" runat="server" />
我的obout表位于更新面板中。当我想在表格中编辑一行时,处理此方法:
protected void Button_Command(object sender, CommandEventArgs e)
{
SelectedUserHiddenField.Value = e.CommandArgument.ToString();
UsersCustomerDetailsView.ChangeMode(DetailsViewMode.Edit);
OpenPopupDialog(String.Format("#{0}", UpdatePopupPanel.ClientID));
}
OpenPopupDialog函数打开一个jquery弹出对话框,其中包含我现在可以编辑的用户信息:
<asp:Panel ID="UpdatePopupPanel" runat="server" CssClass="popup-dialog">
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UsersGrid" EventName="Select" />
</Triggers>
<ContentTemplate>
<asp:DetailsView runat="server" ID="UsersCustomerDetailsView" DataSourceID="SelectedUserDataSource2" DefaultMode="Edit" AutoGenerateEditButton="true" AutoGenerateRows="false"
OnItemUpdating="UserDetailsView_ItemUpdating" OnItemUpdated="UserDetailsView_ItemUpdated"
OnItemCommand="UserDetailsView_ItemCommand"
DataKeyNames="UserId" Width="100%">
<Fields>
<asp:TemplateField>
<HeaderTemplate>
<uc:CulturalLabel ID="CulturalLabel1" runat="server" Text="Lastname" />
</HeaderTemplate>
<EditItemTemplate>
<asp:TextBox ID="LNameTextBox" runat="server" Text='<%# Bind("Lastname") %>' CssClass="textEntry" ValidationGroup="CoordonneValidationGroupUp"/>
<asp:RequiredFieldValidator ID="CustomRequieredValidator2" runat="server" ControlToValidate="LNameTextBox" CssClass="failureNotification" ErrorMessage="test" ValidationGroup="CoordonneValidationGroupUp">*</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
第二个EntityDataSource允许填写我的详细信息视图弹出窗口的字段是这样的:
<asp:EntityDataSource ID="SelectedUserDataSource2" ContextTypeName="RichDataBusinessApplication.Web.RichDataEntities" EnableFlattening="false" EnableInsert="true" EnableUpdate="true" EnableDelete="true" EntitySetName="UserInformations" runat="server" AutoGenerateWhereClause="True">
<WhereParameters>
<asp:ControlParameter Name="UserId" ControlID="SelectedUserHiddenField" DbType="Guid" PropertyName="value" />
</WhereParameters>
</asp:EntityDataSource>
当我点击弹出窗口的更新按钮时,我处理了我的详细信息视图的“OnItemUpdating”:
protected void UserDetailsView_ItemUpdating(Object sender, DetailsViewUpdateEventArgs e){
Page.Validate("CoordonneValidationGroupUp");
if (Page.IsValid)
{
//code to execute if page is valid
}
else
{
e.cancel = true;
}
}
问题如下: 当我的页面由于姓氏为空而无效时,执行“e.cancel = true”但不显示“*”和错误消息,并且我的弹出窗口的字段重新加载了第一行的数据我的数据库。
所以,如果有人可以帮助我!
谢谢!