- - PR -
ATLAS (ASPAJAXExt)について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-03-01 13:27
いつもお世話になります。
インターネットなどでATLASの正式バージョンASP.NET AJAX 1.0がリリース になったという記事をみて評価してみようと思いインストールを行ってみよう としたところ他のバージョンがインストールされています。というメッセージ が出力されてインストールされませんでした。 以前にベータ版のインストールをしていたのでそのせいだと気づきそれを アンインストールしインストールしたところインストールでき、 AjaxControlToolkitもダウンロードしインストールしサンプルのサイト の構築(サンプルが32種類のってるサイト)も出来たのですがここで 一つ問題が発生しました。 ベータ版時にMicrosoft.Web.Atlas.dllを参照についかし javascriptの記述で var x = $('x').value; のような記述が出来たのですが、今回の新バージョンで 同じを記述をした時にjavascript実行の部分でエラーが 発生してしまいます。 この現象についてわかる方がおられましたらよろしく お願いします。 | ||||||||||||
|
投稿日時: 2007-03-01 14:05
http://ajax.asp.net/documentation/AspNet_AJAX_CTP_to_RTM_Whitepaper.aspx
この記事の真ん中あたりの「$ and $get」という部分を見ると、リリース版では $( )の代わりに$get( )を使うようになったと書いてあるように思います。 #JavaScriptで利用する分にはMicrosoft.Web.Atlas.dllへの参照っていらないような。。。 | ||||||||||||
|
投稿日時: 2007-03-01 15:09
どっとねっとふぁんさんお返事ありがとうございます。
いわれたとおり$get()を使用することによって解決しました。 どうもありがとうございます。 解決です。 …といいたいところなんですが 以前は <atlas:ScriptManager ID="ScriptManager1" runat="server"> <Services> <atlas:ServicePath Path="AjaxService.asmx" /> </Services> </atlas:ScriptManager> でwebサービスの呼び出し先を宣言して AjaxService.HelloWorld(OnComplete, OnTimeout); のようにすればjavascriptからこのメソッドを呼び出せていたのですが $get()の部分が解決したので <asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServicePath Path="AjaxService.asmx" /> </Services> </asp:ScriptManager> 上記のように変更して同じように AjaxService.HelloWorld(OnComplete, OnTimeout); でメソッドを呼び出そうとしたところjavascriptのエラーで AjaxServiceは宣言されていません。というエラーメッセージ が出てきます。 この部分に関しても新バージョンにて変わった部分なのでしょうか? わかればお教え下さい。 こちらもいまから調べてみます。 宜しくお願いします。 | ||||||||||||
|
投稿日時: 2007-03-01 18:41
AjaxService.asmx/js でアクセスすると実際に出力される Proxy コードを見ることが出来ます。
おそらく AjaxService.HelloWorld は下のように宣言されていませんか? HelloWorld:function(succeededCallback, failedCallback, userContext) とすると、userContext を受けるクロージャを追加してあげれば呼び出せると思います。 _________________ かるあ のメモ と スニペット | ||||||||||||
|
投稿日時: 2007-03-02 09:04
おはようございます。
かるあさんお返事ありがとうございます。 >>AjaxService.asmx/js でアクセスすると実際に出力される Proxy コードを見ることが出来 ます。 これはブラウザ→表示→ソース で見れるコードのことでしょうか? 一応上記のソースコードを旧と新でみあわせたところは javascriptから呼び出している部分は AjaxService.HelloWorld(OnComplete, OnTimeout); で一緒なのですが 旧の方には <script type="text/xml-script"> <page xmlns:script="http://schemas.microsoft.com/xml-script/2005"> <references> <add src="AjaxService.asmx/js" onscriptload="AjaxService.path = '/ATLASTECH/AjaxDataGet/AjaxService.asmx'" /> </references> <components /> </page></script> のようなwebサービスの場所を指定するような記述 が出てくるのですが 新のほうには場所を示すような記述がまったく出てきません。 このあたりが原因になっているのでしょうか? >>HelloWorld:function(succeededCallback, failedCallback, userContext) >>とすると、userContext を受けるクロージャを追加してあげれば呼び出せると思います。 どのようにすればこれを確認することが出来るでしょうか?? よければお教え下さい。 宜しくお願いします。 | ||||||||||||
|
投稿日時: 2007-03-02 10:04
いえ、Microsoft.Web.Script.Services.ScriptService 属性が付加された WebService なら Webブラウザのアドレスバーに http://ホスト名/AjaxDataGet/AjaxService.asmx/js でアクセスすれば見えるはずです。
このあたりは ScriptManager に WebService を登録してある場合は ASP.NET が自動的に設定してくれます。 自分で設定するならこんな風にしてみてはどうでしょう。
xml-script に関しては 1.0 から使い出したのでよくわからないのですが、 どっとねっとふぁん さんが示された URL を見ると CTP から Beta に移行したタイミングで使えなくなっているようですね。 _________________ かるあ のメモ と スニペット | ||||||||||||
|
投稿日時: 2007-03-02 11:29
かるあさんお返事ありがとうございます。
http://ホスト名/AjaxDataGet/AjaxService.asmx/js にてアクセスしてみたのですが エラー画面になってしまいます。 ///////// エラー内容 /////////////////////// 要求形式が認識されないため、'/js' で URL が 不意に終了しました。 説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 例外の詳細: System.InvalidOperationException: 要求形式が認識されないため、'/js' で URL が 不意に終了しました。 ///////// エラー内容 /////////////////////// 何か足りないのものでもあるのでしょうか? 一応ASP.NETのエラーが出ているのでアクセスは出来ていると 思うのですが… 何度も聞いてすみませんが宜しくお願い します。 こちらも頑張って原因を追求 してみます。 | ||||||||||||
|
投稿日時: 2007-03-02 11:37
>>Microsoft.Web.Script.Services.ScriptService 属性が付加された WebService なら
というのは import Microsoft.Web.Script.Services.ScriptService とするという意味ではないのでしょうか? この部分が少しわからなかったので 追記しておきます。 宜しくお願いします。 |