2017-02-07 10 views
1

が、これはjavascriptのASPxGridView CustomCallback

onButtonClick = function (args) 
{ 
    switch (args) 
    { 
     case 'refresh': 
      dgJournalList.PerformCallback('Refresh'); 
      break; 
    } 
} 

から私のASPxGridView

<dx:ASPxGridView ID="dgJournalList" runat="server" ClientInstanceName="dgJournalList" 
    OnCustomCallback="dgJournalList_CustomCallback" 
    OnCustomJSProperties="dgJournalList_CustomJSProperties" 
    KeyFieldName="LineNo" AutoGenerateColumns="False"> 
    <SettingsPager Visible="False"> 
    </SettingsPager> 
    <SettingsDataSecurity AllowDelete="False" AllowEdit="False" AllowInsert="False" /> 
    <Columns> 
     <dx:GridViewDataTextColumn FieldName="ItemNo" VisibleIndex ="1" 
      ReadOnly="true" Visible="true"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="PostingDateStr" VisibleIndex ="2" 
      ReadOnly="true" Visible="true"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="EntryTypeStr" VisibleIndex ="3" 
      ReadOnly="true" Visible="true"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="DocumentNo" VisibleIndex ="4" 
      ReadOnly="true" Visible="true"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="LocationCode" VisibleIndex ="5" 
      ReadOnly="true" Visible="true"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="Qty" VisibleIndex ="6" 
      ReadOnly="true" Visible="true"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="UOM" VisibleIndex ="7" 
      ReadOnly="true" Visible="true"> 
     </dx:GridViewDataTextColumn> 
    </Columns> 
    <ClientSideEvents EndCallback ="onEndCallback(s, e)" /> 
</dx:ASPxGridView> 

機能のためのaspxコードとコールバックするための方法である

protected void dgJournalList_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) 
{ 
    string[] param = e.Parameters.Split(separator, StringSplitOptions.None); 
    BOResponse objResponse = new BOResponse(); 

    switch (param[0]) 
    { 
     case "Refresh": 
      objResponse = GetListJournal(null); 
      if (objResponse.MsgCode != 0) 
      { 
       dgJournalList.JSProperties["cpErrMsg"] = objResponse.MsgDesc; 
      } 
      dgJournalList.DataSource = JournalList; 
      dgJournalList.DataBind(); 
      dgJournalList.FocusedRowIndex = 0; 
      break; 
     }    
    } 

リフレッシュ動作を実行し、私のアプリケーションはコールバックではなくポストバックを行い、デバッグ時にはコールバックでブレークポイントを指定するackメソッドには達していません。それはPage_Loadメソッドでブレークポイントを打つ。

私のコードはどこにありますか?

答えて

1

通常の動作です。ポストバックとは、完全なページリロードを意味します。あなたの事件を観察していますか?投稿したコードに基づいてはいけません。グリッド領域のリロードのみが表示されます。

Page_InitPage_LoadあなたはdgJournalList.PerformCallback('Refresh');をJavascriptで呼び出すと、イベントが発生します。コントロールはdgJournalList_CustomCallbackメソッドに渡されます。

あなたはそれらのイベントハンドラに以下のチェックを追加し、グリッドのカスタムコールバック中に実行することPage_InitPage_Loadロジックをしたくない場合は、次の

if (!IsPostBack && !IsCallback) 
{ 
    // your code which is run ONLY at initial page load should be put here 
} 

あなたには、いくつかの中にPage_InitとPage_Loadのコードを実行する必要がある場合ポストバックの原因となるボタンをクリックし、上記の条件からIsPostBack部分を削除します。トピックの

さらに詳しい情報:

  1. ASP.NET Page Life Cycle Overview - MSドキュメント
  2. The Concept of Callbacks - DevExpress社のドキュメント
+0

THXメイトは、今私はフィードバックに感謝@justamediocorenewbieコールバックやポストバック –

+0

についての詳細を理解します!あなたの質問に投票しましたので、投票に十分な担当者がいます。 – andrews

0

ボタンのAutoPostBackプロパティは、ページのポストバックを避けるためにはfalseにする必要があります。良い

<dx:ASPxButton id="btnSave" runat="server" AutoPostback="false"/> 
関連する問題