0

最初に、同形のリンクに私を渡さないように読者に警告させてください. 私が尋ねたことは文書化されていません。文書化されている場合は、解読できず、ここで実際の説明が必要です。いいえ、SmartGWT EE について教えてください。このケースは、SAS バックエンドと対話するために使用する、サーバー側で JSP (または perl、php) と対話する純粋な Smartclient です。

この質問は、SAS の操作方法とは関係ありません。smartclient が SmartGWT サーバーを介さずに SAS Web サービスと直接対話する必要がある点を説明するために、SAS に言及しています。私は smartclient フォーラムで似たような別の質問をしましたが、まだ回答がありません。したがって、これは非常に難しいテーマであり、おそらく同形の人でさえ答えを持っていないでしょう。

私は持っている

  • SAS Web サービス sasxjsondsrc から生成された JSON xjsondatasource url。私はJettyのJSPでそれを嘲笑しています。
  • sasxjsondsrc = id(primaryKey)、名前、説明。
  • datasrc が sasxjsondsrc に設定されている ListGrid。
  • datasrc が sasxjsondsrc に設定されている SearchForm/DynamicForm editForm。

する必要がある

  • ユーザーは listGrid で行を視覚的に選択し、del ボタンをクリックします。これにより、私のコードは listGrid.removeSelectedData() をトリガーし、その行のみをローカルで削除し、sasxjsondsrc url にパラメータ id=id を送信して削除します。操作=DEL.
  • ユーザーは listGrid で行を視覚的に選択してから変更ボタンをクリックします。ユーザーが保存編集ボタンを押すと、私のコードは editForm.saveData() をトリガーし、その行をローカルで変更し、sasxjsondsrc url にパラメーター id=id、name=modified-value、description=modified-description を送信します。操作=MOD。
  • ユーザーが追加ボタンをクリックすると、私のコードは editForm.saveData() をトリガーし、その行をローカルに追加し、sasxjsondsrc url にパラメーター name=new-name、description=new-description、operation=ADD を送信します。

このローカル サーバー管理は、smartclient が自らを利点として宣伝しているものです。問題は

  1. 私の JSP はスマートクライアントを登録しておらず、どの操作を実行する必要があるかを示すパラメーターを送信していません。影響を受けるレコードのパラメータとして datasource fields=values のみを受け取ります。
  2. 追加または編集操作のためにローカルでレコードが追加または変更されることはありません。
  3. 問題 (1) を克服するために、操作と呼ばれる非表示のデータソース フィールドを追加してみました。しかし、動的フォームがそのデータソースにバインドされている場合、動的フォーム フィールドでは、操作フィールドをプログラムで正常に変更できません。
  4. 操作を DSRequest として追加しようとしましたが、私の JSP もそれを受け取りません。

JSP はどの操作 (ADD/REMOVE/EDIT) が実行されているかをどのように認識しますか?

OK、簡単に言うと、SmartGWT のデータソースは非常にトリッキーなビジネスです。UI にのみ SmartGWT を使用するようにアドバイスされていますが、SmartGWT データソースは扱いにくいため、使用しないでください。私のような構成でSmartGWTクライアントプログラミングをどのように行ったかの例を投稿またはリンクしていただけませんか。

GWT 2.1M3 セル/ページ アーキテクチャの使用に戻し、独自の rpc テーブル セル フォーム リンクを作成する必要がありますか?

4

1 に答える 1

3

SmartGWT データ ソース、具体的にはRestDataSourceと、おそらくDataSource.setOperation()メソッドを実際に確認する必要があると思います 。

于 2010-10-01T11:19:34.950 に答える