質問を可能な限り最善の方法で表現したかどうかわからないので、コード例を示します。
同じJavaScript関数を使用するページが複数あります。その関数をすべてのページに追加する代わりに、.jsに追加して、サイトマスターにインポートしました。その関数を呼び出すハンドラーをオブジェクトに追加するにはどうすればよいですか。私が持っている方法では機能していないようです。
編集:問題が発生していることがわかりました
document.getElementById('<%= PostBackButton.ClientID %>').click();
javascript関数は正しく呼び出され、ページにはPostBackButton aspボタンがありますが、getelementはnullを返します。
//chart-ajaxDateSelection.js
function dateSelectionChanged(sender, args) {
selectedDate = sender.get_selectedDate();
document.getElementById('<%= PostBackButton.ClientID %>').click();
}
function getSlide()
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x=="slide")
{
return y;
}
}
}
私のハンドラー:
<asp:TextBox ID="OverviewChartStartDateTextBox" runat="server"></asp:TextBox>
<ajaxToolkit:CalendarExtender ID="OverviewChartStartCal"
OnClientDateSelectionChanged="dateSelectionChanged" runat="server"
TargetControlID="OverviewChartStartDateTextBox">
</ajaxToolkit:CalendarExtender>
ご覧のとおり、ajaxカレンダーで選択した日付が変更されたときに、dateSelectionChangedメソッドを呼び出そうとしています。