0
我們使用callbackpanel爲的DevExpress控件的驗證,但什麼是真正發生的事情是:表單數據保存和確認消息也顯示
如果我們點擊,而不在表單文本框中輸入任何東西提交按鈕。它顯示驗證消息,但它也將空白數據保存到數據庫。
我想知道是否顯示驗證消息,爲什麼後端的事件正在調用保存數據?
我們使用callbackpanel爲的DevExpress控件的驗證,但什麼是真正發生的事情是:表單數據保存和確認消息也顯示
如果我們點擊,而不在表單文本框中輸入任何東西提交按鈕。它顯示驗證消息,但它也將空白數據保存到數據庫。
我想知道是否顯示驗證消息,爲什麼後端的事件正在調用保存數據?
基本上在DevExpress ASPxCallbackPanel中,一個Button Click不會觸發回調,它會觸發一個Postback,這是UpdatePanel和CallbackPanel之間的區別。
所以你必須調用ASPxCallbackPanelClient.PerformCallback('PARAM');代替。
你沒有提到如何觸發回調,你沒有表現出你的ASPxButton代碼看起來還是你的ASPxCallbackPanel的外觀或如何您的驗證看起來,所以考慮到請看下面的代碼,在你的作品非常好場景
所有控件DX,包括驗證和按鈕
<dx:ASPxCallbackPanel runat="server" ID="cbpDIActions" ClientInstanceName="cbpDIActions" OnCallback="cbpDIActions_Callback">
<panelcollection>
<dx:PanelContent>
<dx:ASPxSpinEdit ID="txtBuilFixtNoBathrooms" runat="server" ValidationSettings-RequiredField-IsRequired="true" ValidationSettings-ValidationGroup="SubmitValidation">
</dx:ASPxSpinEdit>
<dx:ASPxButton ID="btn" runat="server" AutoPostBack="false" Text="Process" UseSubmitBehavior="False"
ValidationSettings-ValidationGroup="SubmitValidation" CausesValidation="true"
>
<ClientSideEvents Click="function(s,e){
ASPxClientEdit.ValidateGroup('SubmitValidation');
if (ASPxClientEdit.AreEditorsValid()) {
if(!cbpDIActions.InCallback()) {
cbpDIActions.PerformCallback('PARAM');}
}
}" />
</dx:ASPxButton>
</dx:PanelContent>
</PanelCollection>
</dx:ASPxCallbackPanel>
而在後端,你把所有的代碼在回調事件
protected void cbpDIActions_Callback(object sender, DevExpress.Web.CallbackEventArgsBase e)
{
if (e.Parameter != null && e.Parameter.ToString() == "PARAM")
{
//PROCESS YOUR CODE
}
}
沒有人能夠給你一個答案沒有一些代碼張貼在這裏。 – CalC
我猜測有JavaScript錯誤,阻止驗證器正確觸發。但你應該總是做服務器端驗證,因爲JavaScript可以很容易被禁用。 – VDWWD