トップ回答者
ajaxToolkitのカレンダエクステンダーで日本語対応時のエラーについて

質問
-
いつもお世話になります。
ajaxToolkitのCalendarExtenderで曜日の日本語対応するために、ToolkitScriptManagerのEnableScriptsGlobalization=Trueとしたところ、下記のエラーが発生します。
EnableScriptsGlobalization=Falseでは問題なく実行されます。
開発環境は、VWD2008ExpressEdition、AjaxControlToolkit.Binary.NET35.zip(40412)です。ネット上でいろいろ調査してみましたが、同じ現象のものがなく、原因が全く分からない状況です。
なにか参考となる情報がありましたら、教えていただけないでしょうか?『Microsoft JScript コンパイル エラー: '}' がありません。』のダイアログが表示
■エラー箇所は【ScriptResource.axd?d=..............】の下記の←の位置で発生します。
------------------------------------------------------------------------------------------------
$type._setup = function() {
var cultureInfo = window.__cultureInfo,
monthNames = ["January","February","March","April","May","June","July","August","September","October","November","December",""],
shortMonthNames = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],
invariant = {"name":"","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":shortMonthNames,"MonthNames":monthNames,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":Array.clone(shortMonthNames),"MonthGenitiveNames":Array.clone(monthNames)},"eras":[1,"A.D.",null,0]};
this.InvariantCulture = this._parse(invariant);
switch(typeof(cultureInfo)) {
case "string":
cultureInfo = window.eval("(" + cultureInfo + ")"); ←ここでエラー
case "object":
this.CurrentCulture = this._parse(cultureInfo);
delete __cultureInfo;
break;
default:
cultureInfo = clone(invariant);
cultureInfo.name = "en-US";
cultureInfo.numberFormat.CurrencySymbol = "$";
var dtf = cultureInfo.dateTimeFormat;
dtf.FullDatePattern = "dddd, MMMM dd, yyyy h:mm:ss tt";
dtf.LongDatePattern = "dddd, MMMM dd, yyyy";
dtf.LongTimePattern = "h:mm:ss tt";
dtf.ShortDatePattern = "M/d/yyyy";
dtf.ShortTimePattern = "h:mm tt";
dtf.YearMonthPattern = "MMMM, yyyy";
this.CurrentCulture = this._parse(cultureInfo);
break;
}
}
------------------------------------------------------------------------------------------------■aspxは下記が全てです。
------------------------------------------------------------------------------------------------
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="TextBox1_CalendarExtender" runat="server"
DaysModeTitleFormat="yyyy/M" Enabled="True" TargetControlID="TextBox1"
TodaysDateFormat="yyyy/M/d">
</ajaxToolkit:CalendarExtender>
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"
EnableScriptGlobalization="True">
</ajaxToolkit:ToolkitScriptManager>
</div>
</form>
</body>
</html>
------------------------------------------------------------------------------------------------
回答
-
> ScriptResource.axdというファイルは具体的になんでしょうか?
ファイルでなくて、Assembly(今回の場合 AjaxControlToolkit.dll)に埋め込まれた
html, css, image, script ファイルを取得するための HTTP ハンドラです。web.config を見ると以下のような定義がされているはずです。
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
すべての返信
-
jaxToolkitのCalendarExtenderで曜日の日本語対応するために、ToolkitScriptManagerのEnableScriptsGlobalization=Trueとしたところ、下記のエラーが発生します。
EnableScriptsGlobalization=Falseでは問題なく実行されます。
開発環境は、VWD2008ExpressEdition、AjaxControlToolkit.Binary.NET35.zip(40412)です。追加の情報です。
VWDのデバッグ環境で実行すると、エラーになりますが、VWDを通さずに(ブラウザから実行)では、エラーが発生しません。
開発環境に問題があるのでしょうか?
-
同じコードで試しましたが、VS2010 Pro, VS2008 Pro いずれの開発サーバー
でも問題は再現されませんでした。たぶん、環境の違いか、Ajax Control Toolkit の不具合ではない別の問題(フ
ァイルが壊れているとか)があるのではないかと思います。ちなみに自分の環境は下記の通りです。
Vista Ultimate 32-bit SP2, .NET 3.5 SP1, Ajax Control Toolkit 3.5.4012.2,
VS 2010 Pro 10.0.30319.1, VS 2008 Pro 9.0.30729.1 SP -
> ScriptResource.axdというファイルは具体的になんでしょうか?
ファイルでなくて、Assembly(今回の場合 AjaxControlToolkit.dll)に埋め込まれた
html, css, image, script ファイルを取得するための HTTP ハンドラです。web.config を見ると以下のような定義がされているはずです。
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>