2012-03-16 6 views
0

私はデクシャルなネストされたグリッドビューを持っています。マスターおよび詳細グリッドビューには、編集や新しいアクティビティの追加のためのリンクボタンがあります。新しい行を挿入するか、既存の行を更新した後、「あなたの更新が正常に保存されました」というメッセージボックスを表示する必要があります。これは、単純なjavascript警告ボックスまたはページ自体に表示されるメッセージです。どちらのグリッドビューもobjectdatasourceを使用します。私は、Gridviewとobjectdatasourceの両方のRowUpdatedイベントで次のコードを試してみました。メッセージボックスを編集/新規ボタンから表示する方法デキュープレーググリッドビューのクリック

System.Web.HttpContext.Current.Response.Write( "alert(あなたの更新は正常に保存されました)"));

または

ClientScript.RegisterStartupScript(this.GetType()、 "myalert"、 "警告( '" +あなた正常に保存された更新+ "');"、真の);

どちらの場合でも、メッセージボックスは表示されません。ページ上のボタンのボタンクリックイベントで同じコードを使用した場合、正常に動作します。私のイベントは、asp:Literalコントロールのテキスト値を設定しようとしました。それもうまくいかなかった。どんな助けでも大歓迎です。

おかげ

答えて

4

ハンドルASPxGridView.RowInsertedASPxGridView.RowUpdatedグリッドイベントはASPxGridView.JSPropertiesにメッセージを含むカスタムプロパティを設定します。
次に、クライアント側のASPxClientGridView.EndCallbackイベントを処理して、カスタムプロパティが存在するかどうかを確認し、アラートを発生させます。

protected void ASPxGridView1_RowUpdated(object sender, ASPxDataUpdatedEventArgs e) { 
    if (e.Exception == null) { 
     ((ASPxGridView)sender).JSProperties["cpUpdatedMessage"] = "Your update has been saved successfully"; 
    } 
} 
<dx:aspxgridview ID="ASPxGridView1" ... onrowupdated="ASPxGridView1_RowUpdated"> 
    <clientsideevents 
     EndCallback="function(s, e) { 
         if (s.cpUpdatedMessage) { 
          alert(s.cpUpdatedMessage); 
          delete s.cpUpdatedMessage; 
         } 
        }" 
    /> 

RowInsertedイベントのために同じ操作を行います。 DevExサポートセンターにはexampleが似ています。

また、use solution with e.commandパラメータを使用することもできます。

+0

これは、マスターグリッドビューで正常に動作します。正しい方向へ私を案内してくれてありがとう。今は、アラートボックスや、ラベルやリテラルコントロールなどのWebコントロールを介したメッセージを通じてメッセージを表示したいと考えています。 – user466663

+0

@ user466663コードで回答を更新しました。 – Filip

関連する問題