- - PR -
Ajax を使うときの Web.Config
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-05-26 10:06
お世話になります。
GridView の編集でカレンダーをドロップダウンで表示したく調べているとAJAXを使用すれば可能とありました。そこで、AJAX をインストールし「PopupControlExtender」を張りtargetControlID をカレンダーにセットしました。コンパイルすると下記のようなエラーが出ます。「エラー CS0012: 型 'System.Web.UI.ExtenderControl' が参照されていないアセンブリで定義されています。アセンブリ 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' への参照を追加してください。」それで、ネットで調べると、Web.config に下記のように追加とあったのでやってみましたが、エラーは、解消しません。どうしたらいいですか?教えてください。 <system.web> : : : <pages> <controls> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/> </controls> </pages> </system.web> <ajaxToolkit:PopupControlExtender ID="PopupControlExtender1" runat="server" TargetControlID="Calendar1"> </ajaxToolkit:PopupControlExtender><asp:Calendar ID="Calendar1" runat="server"></asp:Calendar> VS2005 C# ASP>NET |
|
投稿日時: 2008-05-26 14:34
操作されているのは、AJAX導入前に作成されたプロジェクトですよね?
あまりよいアドバイスができないのですが、 ・新規でAJAX-EnabledなWebアプリを作ってみて、そのWeb.configと比較して、足りないものがあれば追加する ・(Webサイトでなく)Webプロジェクトであれば、参照設定にSystem.Web.Extensionsがあることを確認する ・GACにSystem.Web.Extensionsがあることを確認する(管理ツールの.NET Framework 2.0 Configurationから確認できます) あたりを試されてみるとどうでしょうか。 |
|
投稿日時: 2008-05-26 16:13
お世話になります。
> System.Web.Extensionsがあることを確認する アッセンブリキャッシュ内にあることが確認できました。 最初に書くのを忘れましたが、エラーをダブルクリックすると「xxx.aspx.designer.cs」内の「protected global::AjaxControlToolkit.CalendarExtender CalendarExtender1;」の最後の CalendarExtender1 でエラーになっているようです。 > Web.configと比較して、足りないものがあれば追加する は、それらしき物の多くをコピペしてみましたが、変わらないので、問題個所はここではないのかもしれません。最初にネットを読みあさった時は、「Web.Config も変更」とあったのでここを疑ってましたが..... 試しに、新規プロジェクトでASP.NET Ajax-Enable web Application で空のサンプルを作成し適当に、下記コードを追加しコンパイルしました。コンパイルは、OKですが、 走らせるとエラーになってしまいます。 「コードの追加」 <cc1:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="TextBox1"> </cc1:CalendarExtender> 上記以外のコードは、追加していません。 「エラー内容」 「The control with ID 'CalendarExtender1' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it. 」 結局、仮にコードの追加でコンパイルが通ってもまだ、使い方を知らないようです。 基本的な、Ajaxの使い方って紹介したページ内ですか? 教えてください。 |
|
投稿日時: 2008-05-26 16:41
お世話になります。
エラーについては、ソリューションエクスプローラー内の「参照設定」に System.Web.Extensions が入ってないことがわかり、追加することでコンパイル時のエラーは、回避できました。しかし、Ajax の使い方がわかりません。 現在のところ、下記のように配置して動かすとエラーが出ます。 「The control with ID 'CalendarExtender1' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.」 Ajax の使い方、又は、カレンダをポップアップで表示して日付を取り込むといったサンプルなどあるでしょうか?教えてください。 |
|
投稿日時: 2008-05-26 17:03
ASP.NET AJAX TIPS
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html#i32 カレンダー http://www.atmarkit.co.jp/fdotnet/dotnettips/575aspajaxcalendar/aspajaxcalendar.html |
|
投稿日時: 2008-05-27 06:14
このサンプルが参考になるかと
GridViewでドロップダウンカレンダーを表示する(ASP.NETのCalendar使用) http://asp35.com/samples/080518VB-1.aspx?it=demo ドロップダウンカレンダーを表示する(AJAX Control ToolkitのCalendarExender使用) http://asp35.com/samples/080120VB-1.aspx?it=demo CalendarExtenderの使い方 http://asp35.com/samples/080515VB-2.aspx?it=demo JavaScriptのみでカレンダー表示(Yahoo!UI Library) ASP.NET AJAX不要 http://jsajax.com/CalendarDropDownListArticle402.aspx JavaScriptのみでカレンダー表示(jQuery UI DatePicker) ASP.NET AJAX不要 http://jsajax.com/UIDatePickerArticle879.aspx ASP.NET AJAXが使用できないときはjQuery UI DatePickerがお勧めです。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
|
投稿日時: 2008-05-27 10:02
お世話になります。
> GridViewでドロップダウンカレンダーを表示する(ASP.NETのCalendar使用) > http://asp35.com/samples/080518VB-1.aspx?it=demo 現在、上記を参照にして GridView の EditItemTemplate にカレンダーを表示させようとしています。EditItemtemplate 内に<cc1:PopupControlExtender ID="PopupControlExtender1" runat="server" TargetControlID="TextBox2" PopupControlID="pnlDatePicker" Position="Bottom" />と書いてあり下記のようなメッセージ1が出ています。実際には、ページを表示していますが、IEのステータスバーに「実行しましたが、ページでエラーが発生しました」と表示し「編集」をクリックすると下記のコードで、「指定されたキャストは有効ではありません。 」というエラーが発生しています。 教えてください。お願いします。 メッセージ1 「エラー 1 要素 'PopupControlExtender' は不明な要素です。これは、Web サイトでコンパイル エラーがあるときに、発生することがあります。」 コード <asp:Calendar ID="Calendar1" runat="server" Width="220px" DayNameFormat="Shortest" BackColor="#FFFFCC" BorderColor="#FFCC66" Font-Names="Verdana" Font-Size="8pt" ForeColor="#663399" OnSelectionChanged="Calendar1_SelectionChanged" BorderWidth="1px" Height="200px" SelectedDate='<%# Bind("FixOutDate") %>' ShowGridLines="True"> <SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" /> <TodayDayStyle BackColor="#FFCC66" ForeColor="White" /> <SelectorStyle BackColor="#FFCC66" /> <OtherMonthDayStyle ForeColor="#CC9966" /> <NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" /> <DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" /> <TitleStyle BackColor="#990000" Font-Size="9pt" Font-Bold="True" ForeColor="#FFFFCC" /> </asp:Calendar> |
|
投稿日時: 2008-05-27 10:43
Registerディレクティブを書かないとだめです。こんな風に。
http://momotchi.net/forums/t/702.aspx PopupControlExtenderをツールボックスに登録してそこからドラッグドロップで 貼り付けてください(普通のButtonとかと同じように)。 すると自動的にRegisterディレクティブが作成されるはずです。 [追記] あ、間違えたかも。configで <add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/> としてるからRegisterしなくて大丈夫かも。でもtagPrefix="ajaxToolkit"としながら タグプリフィックスを<cc1:としてますよね。 [ メッセージ編集済み 編集者: べる 編集日時 2008-05-27 11:49 ] |