2009-08-11 20 views
2

Entity Frameworkを使用して非常に基本的な動的データWebアプリケーションを作成し、GridViewからeditコマンドをクリックすると、詳細ビ​​ューを開き、フィールドを編集し、 Updateリンク、何も起こりません。動的データ詳細ビューで更新コマンドが機能しない

私の質問は、このアップデートで何も起こらない可能性があり、診断のヒントはありますか?

MORE INFO EntityDataSourceの「非表示」例外のようです。私は、更新または挿入操作が完了していない理由が複数見つかりましたが、SQLトレースを使用してコマンドを送信する必要がありました。このコマンドを手動で実行すると、すばやく表示されるSQLエラーが発生します。なぜこれが私のUIへの道を見出さないのかは謎です。一般的に

+0

この質問の「ちょうどいい」部分は、あなたの質問に対する回答が見つかったことを意味しますか? –

+0

いいえ、私はちょうど私の質問をする原因となるシナリオを隔離しました。 – ProfK

+1

あなたの質問であなたが引用したコードは、それをより混乱させ、実際の問題を悪化させるかもしれません。私はそれが問題とは関係ないと信じています。しかしLinqDataSourceのUpdatingイベントを聞いてみてください。 –

答えて

5

、あなたが動的データのウェブサイトをデバッグしたり開発しているいつでも、一つはすべきである後藤Site.masterファイルとfalseにEnablePartialRenderingのScriptManagerの属性を設定します。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="false"/> 

これは、そうでない場合は、その例外がより明らかになりますList/Edit/Insert/Details/ListDetailsページテンプレートのDetailsView、FormViews、およびGridViewを囲むUpdate Panelを使用しているため、敷物の下で掃除されているようです。

あなたが実行している実際の問題は、エラー処理とパネルの更新と関係があると思います。 IEでデバッグするときに、画面の左下に小さな感嘆符が表示されますか?もしそうなら、それをクリックすると、未処理の例外のために発生したjavascriptエラー(Sys.WebForms.PageRequestManagerServerErrorException)が表示されます。

詳細については、ScottGu's Blog on the topicをご覧ください。

@アーロンのコメント:彼が言及しているエラーを捕まえるには時期尚早です。 (MSDN):

エラーがときに発生する場合は、このイベントのハンドラを実行する機会を与えた後までEntitydataSourceが実際に例外をスローしませんので、私は彼が更新イベントを処理したいと考え、このシナリオでは、と思います変更が データソースに永続化され、 更新イベントが発生し、 EntityDataSourceChangedEventArgsの 例外プロパティは オブジェクトが返さ 例外に設定されています。更新されたイベントハンドラで例外 を処理する場合は、 ExceptionHandledプロパティをtrueに設定します。 これにより、例外が再度発生した が防止されます。 ExceptionHandled プロパティに値 falseを指定すると、EntityDataSource は例外を再発生させます。

0

私がDetailsViewコントロールからデータを更新しようとしているのであれば、ほとんどの場合、コードの技術に頼っています。 DetailViewの標準ボタンのどれかをクリックすると、ItemCommandが起動されると思います。これらのイベントの内部では、どのボタンがイベントを発生させたかを把握し、必要な処置を講じなければなりません。

しかし、あなたのdetailsviewがgridview編集テンプレートの中にあるので、イベントを手動で配線することをお勧めします。それらを手動でマークアップに組み込みます。

...クリックした更新は、GridViewではなく、DetailsView上にあります。グリッドビューの編集モードをキャンセルし、グリッドビューを再バインドしてください。

関連する問題