ページの読み込み時にjavascript関数を実行してから、コードビハインドで関数を呼び出すポストバックを実行しようとしています。タイムゾーンデータを取得し、それらを引数として__dopostbackに渡そうとしています。これが私が持っているものです(省略形):
.aspxファイル内
<body onload="GetLocalTime()">
....
function GetLocalTime(){debugger
var d = new Date();
var tzOffset = d.getTimezoneOffset();
var hfOffset = document.getElementById('<%=hfOffset.ClientID%>');
var hfTZName = document.getElementById('<%=hfTZName.ClientID%>');
var tzName = getTimezoneName();
hfOffset.value = tzOffset;
hfTZName.value = tzName;
__doPostBack('TZSessionVars', tzOffset, tzName);
}
コードビハインドのPage_Load()で、IsPostbackがtrueの場合:
string sTarget = Request["__EVENTTARGET"];
if (sTarget.Equals("TZSessionVars"))
{
string sArg = Request["__EVENTARGUMENT"];
SetTZSessionVars(sArg); // this is where I parse the argument and set session vars
}
javascriptをトレースすると、__ doPostbackに達すると、次のように表示されます。MicrosoftJScriptランタイムエラー:オブジェクトが必要です
パラメーターtzOffsetおよびtzNameはOKであり、有効な値を持っています。