- PR -

AJAXでスクリプトを挿入

1
投稿者投稿内容
Diosan
常連さん
会議室デビュー日: 2006/07/27
投稿数: 29
お住まい・勤務地: 静岡
投稿日時: 2007-04-19 15:38
ASP.NET AJAXと MSの地図(VirtualEarth)を組み合わせたページを作っています。
検索を実行すると結果がリストに表示されるというところまでは出来ているのですが、
結果を地図上に表示するためJavaScriptの挿入でつまづいています。

下の様なコードで
コード:
<asp:DataList ID="_listSearchResult" runat="server" >
  <ItemTemplate>
       ・・・
  </ItemTemplate>
</asp:DataList>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>-->


Literal1の部分を
コード:
<script type="javascript">
   // addPinの中で実際に地図を操作
   addPin( 0, 'aaa', 35.0, 135.0);
   addPin( 1, 'bbb', 34.6, 134.5);
</script>


のように出力できれば上手くいくはずなのですが、結果のソースを見ると
空になっています。

デバッガでLiteral1に上記コードが入るのは確認できています。
スクリプトの挿入はセキュリティ上問題があるから、はじかれているような
気がするのですが、こういう場合、どうすれば良いのでしょうか?
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2007-04-19 16:37
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36894&forum=7
上記リンクのスレッドで教えてもらったのですが、スクリプトをScriptManager.RegisterClientScriptBlockで登録してみてはいかがでしょうか。
Diosan
常連さん
会議室デビュー日: 2006/07/27
投稿数: 29
お住まい・勤務地: 静岡
投稿日時: 2007-04-19 17:22
かめたろさん

ありがとうございます。
惜しいところまで行っていると思うのですが、スクリプトのエラーで
「'return'ステートメントが関数の外にあります。」
と表示されます。

どこが悪いか調べたいのですが、ブラウザのソースを表示だと、AJAXで
更新された部分は表示されないようです。

確認の方法をご存知ですか?
Diosan
常連さん
会議室デビュー日: 2006/07/27
投稿数: 29
お住まい・勤務地: 静岡
投稿日時: 2007-04-19 17:52
取り合えず、エラーになるスクリプト作成部分をページロード時に実行して
どんな風に出力されるか見てみました。
結果は
コード:
<script type="text/javascript">
if( map == null )
   return;
・・・
</script>


という風にBody内に書かれていたのが悪かったようです。
なので、下のように修正しました。
コード:
<script type="text/javascript">
if( map != null )
{
・・・
}
</script>



さて、本題についてですが、
かめたろさんが教えて下さった、
RegisterClientScriptBlock(page, type, key, script, addScriptTags)
で無事解決できました。
引数のpageとtypeは意味がわからないので、指定にページ内の適当なコントロールを
いくつか試してみましたが、どれでも上手く動きました。
1

スキルアップ/キャリアアップ(JOB@IT)