2017-10-06 5 views
0

が表示されているが、実際に何が起こっては、次のとおりです。フォームデータが保存され、検証メッセージはまた、我々はDevExpress社のコントロールの検証のためcallbackpanelを使用している

我々は形式のテキストボックスに任意のものを入力せずに送信ボタンをクリックした場合。検証メッセージを表示していますが、空のデータをデータベースに保存しています。

検証メッセージが表示されている場合、バックエンドのイベントがデータを保存するために呼び出している理由を知りたいですか?

+1

ここにコードを掲載することなく、誰もあなたに答えを与えることはできません。 – CalC

+0

私は、バリデータが正しくトリガーされないようにするJavaScriptエラーがあると推測しています。しかし、javascriptは簡単に無効にすることができるので、サーバー側の検証も常に行う必要があります。 – VDWWD

答えて

0

基本的にDevExpress ASPxCallbackPanelでは、ボタンクリックはコールバックをトリガーせず、UpdatePanelとCallbackPanelの違いであるポストバックをトリガーします。

したがって、ASPxCallbackPanelClient.PerformCallback( 'PARAM')を呼び出す必要があります。代わりにあなたは、コールバックをトリガーする方法については言及しなかった

、あなたのASPxButtonコードがどのように見えるか、またはあなたのASPxCallbackPanelがどのように見えるか、またはあなたのバリデータがどのように見えるかを示し、そのためには、あなたのシナリオ

で非常にうまく機能の下のコードを参照してくださいことを考慮しませんでしたバリとボタン

<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> 

とバックエンドで使用すると、コールバックイベントですべてのコードを置くなど、DXなど

すべてのコントロール、

protected void cbpDIActions_Callback(object sender, DevExpress.Web.CallbackEventArgsBase e) 
    { 

     if (e.Parameter != null && e.Parameter.ToString() == "PARAM") 
     { 
//PROCESS YOUR CODE 
} 
} 
関連する問題