3

javascript AdoNetDataContextを作成し、そこからDataViewを作成しました。テーブル列のテンプレートでテキストボックスを使用していました。AdoNetDataContextは、使用されたテーブル列に対応するテキストボックスに変更があった場合、変更を追跡できます。しかし、テキストボックスへの私の変更はjqueryを介して行われます。重要なのは、datacontextは変更があったことを認識しないため、それらをコミットできないということです。

この動作の背後にある理由は何である必要があり、この問題をどのように解決できますか?どうもありがとう。

4

2 に答える 2

2

DataContext、したがってAdoNetDataContextは、その派生物としてJavaScriptを独自に使用して、データに依存せずに実際の変更を追跡および報告します。これらは、別のコードではなく、人間と連携するように設計されています:-)コードからデータを送信する必要がある場合は、JSONWebサービスに直接送信できます。自動生成されたUIをいじる必要はまったくありません。これらのほとんどすべてのASP.NET自動生成コントロールとの取引は、企業がUIの実行にまったく煩わされたくない場合に、単純なことを目的としていることです-プラグアンドプレイ:-)

変更を許可し、さらには招待するWeb UIの場合は、MVC.NET(ASP.NETMVCとも呼ばれます-pplは名前で遊ぶのが好きです:-)に切り替える必要があります。

于 2010-08-28T11:29:33.713 に答える
1

私は AdoNetDataContext / ASP に精通していませんが、jQuery を使用して行われた編集は、テキスト ボックス値の変更を検出するために使用するイベントを発生させないようです。

これが事実であると仮定すると、オプションは次のとおりです。

  1. jQuery を取得して正しいイベントを発生させる
  2. jQuery を取得して AdoNetDataContext 固有の関数を起動し、変更の認識を強制します
  3. AdoNetDataContext を取得して、jQuery によって発生するイベントをリッスンします

.
最も「正しい」オプションは#1、IMHOです。

編集:
1. jQuery を取得して、正しいイベントを発生させます::

イベントをトリガーする jQuery 関数が存在します: http://api.jquery.com/trigger/

そこのドキュメントによると、次のようなものが機能するはずです(テストされていません):

$('foo').trigger('change');

(注: これは、AdoNetDataContext が「onChange」イベントをリッスンしていることを前提としています。そうでない場合は、リッスンしているものを見つけて、代わりにその関数を呼び出す必要があります)

于 2010-08-24T23:33:38.097 に答える