0

連絡先のリストを取得してデータグリッドに表示するSilverlightアプリケーションがあります。アプリケーションは、連絡先をExcelにエクスポートし、連絡先をHTMLページとして印刷することもサポートする必要があります。

私はWCFRIAサービスを使用して、Silverlightクライアントでほとんどのクエリを作成しています。その後、サーバーはクエリにwhere句を追加します。

ASP.Netページを使用してクエリの結果を実行する方法があるかどうかを調べようとしています。このページでは、クエリの結果がフォーマットされ、ユーザーに結果をダウンロードする(または結果を印刷する)ように求められます。

私が思いついた唯一のアイデアは、IQueryableオブジェクトをサーバー側で変数として保存し、キーをSilverlightページに戻すことです。次に、キーをExport.aspxまたはPrint.aspxのいずれかに渡します。これにより、クエリの結果が取得され、返されます。

より良いアイデアはありますか?

私が考えていないより良い方法があるに違いないようです。

4

3 に答える 3

0

残念ながら、少なくとも私が知っていることには、これ以上のアプローチはありません。私たちは、SilverlightでのExcelエクスポートについてもこれを調査しています。URLを使用して新しいブラウザウィンドウを開こうとしましたが、必要なヘッダーやPUTデータを追加できません。したがって、URLでクエリを完全にエンコードできない限り、このアプローチは機能しません。

実装するアプローチは、質問で述べたように、エクスポートされた結果をストレージに保存し、この結果のキーを返すことです。

一方、リソースへのリンクの送信を有効にするなど、いくつかの優れた機能を使用できます。もちろん、これは許可などのすべての頭痛の種を引き込みます。

于 2012-05-13T08:14:28.720 に答える
0

それで、私は多くの仕事と研究の後にようやくこれをすることができました。これを機能させるには、Silverlight側で(逆コンパイルを介して)WCF RIAサービスの内部クラスの一部を使用して、ASP.Netページに渡す適切なクエリ文字列を生成する必要がありました。次に、サーバー側で、クエリ文字列を解析して有効なLinqクエリに変換するために、さらに多くのクラスを逆コンパイルする必要がありました。これですべて機能し、コードビハインドでクエリを実行して結果をファイルとして出力できます。

興味のある方はお知らせください。残酷な詳細を共有することができます。ありがとう!

于 2012-08-28T18:06:18.870 に答える
-1

クライアント側でExcelLiteを使用してExcelファイルを正常に生成しました。次に、[ファイルの保存]ダイアログでユーザーにプロンプ​​トを表示します。これは、データグリッドに対して一般的に行うことができます。HTMLの出力はそれほど難しくありません。

于 2012-05-13T23:24:30.520 に答える