0

一部の SharePoint 2007 PageLayout で動作する UserControl の構築を開始しています。UserControl の目的は、ページの名前に基づいて複数の場所の地図を表示することです。そこで必要なことは、ページ名を取得し、関連する地理座標のコレクションを SharePoint リストに照会して、マップにロードすることです。私は、要素の単純な変更やアカデミックな jquery AJAX 呼び出し以外に、クライアント側のスクリプト作成を実際に行ったことはありません。だから私は、データを渡すための一般的な慣行が何であるかを理解しようとしています.

ページ メソッドへの AJAX 呼び出しについてオンラインで話しているものをたくさん見てきましたが、これはユーザー コントロールであるため、公開されていません。代替手段は、Web サービスへの ajax 呼び出しのようです。以前に Web サービスを構築したことがありますが、.NET クライアントで使用するためのものです。これは、スクリプトによって呼び出されるように .net Web サービスをセットアップする方法ですか? セキュリティはどうですか?自分のページまたは自分のサイトが Web サービスを呼び出しているだけで、一般公開されていない場合はどうすればよいですか?

この場合、サービスが必要になるかどうかさえわかりません。最初のリクエスト時にデータを取得してページに配置することはできますか? json がコード ビハインドで座標コレクションをシリアル化し、それを javascript がピックアップする隠しフィールドに書き込むようなものですか?

4

2 に答える 2

0

ユーザーコントロールからJavaScriptに値を渡す方法はいくつかあります。

ScriptControl:

Webコントロールのクライアント動作を含めることができます。以下のリンクを参照してください。
スクリプトコントロール
の作成ASP.NET:ScriptControl基本クラス
Asp.NetAjaxScriptControlチュートリアルを使用してAJAXサーバーコントロールを作成する

RegisterStartupScriptおよびRegisterClientScriptBlock:

ページにクライアント側のスクリプトブロックを含めることができます。以下のリンクを参照してください。ASP.NETサーバーコントロールからクライアント
側スクリプトを挿入するクライアント側スクリプトの操作

HtmlGenericControl:

スクリプトタグを動的に作成し、すべてのjavascriptロジックをInnerHtmlプロパティに挿入することを妨げるものは何もありません。これは、最初の要求時に実行できます。

例:

HtmlGenericControl script = new HtmlGenericControl("script");
script.ID = "script";
script.Attributes.Add("type", "text/javascript");
script.InnerHtml = "alert('Hey');";

//Insert the script into some asp:Panel
panel.Controls.Add(script);
于 2013-02-14T21:29:01.463 に答える
0

4年後にこれを読んで、私は過去の自分にこう言うことができます:

  1. はい、ページに json を含めるだけで、JS が取得できるように非表示になります。ただし、これにより、クライアント ブラウザーでダウンロードする必要がある応答のサイズが大きくなることに注意してください。これには時間がかかるだけでなく、モバイル ユーザーの高価なデータをより多く消費します。大量のデータがあり、一部が使用されない可能性がある場合は、必要に応じて Web サービスからデータを取得することをお勧めします。

  2. REST サービスは、AJAX 要求に応答するための一般的なソリューションです。匿名ユーザーからのクライアント側スクリプトがデータを取得できるようにしたい場合、匿名ユーザーからデータを保護するためにできることはあまりありません。

于 2017-01-31T18:52:48.177 に答える