2010/06/04(Fri) 17:46:05 編集(投稿者)
> private void Page_Load(object sender, System.EventArgs e)
> {
> // ページを初期化するユーザー コードをここに挿入します。
> Button1.Attributes["onclick"]
> = "return confirm('本当に移動しますか?');";
>
> はどこに書いてあげたらいいのでしょうか?
>
この例のようにPage_Loadに書けば良いのではないでしょうか。
それよりもOnClientClickプロパティに設定出来ますよ。
以下のような感じでしょうか。
※ asp:CheckBox等のサーバーコントロールは、クライアントスクリプトで使用する
場合はIDが変換されるので、注意が必要です。
【チェックボックスがCheckBoxListの場合】
1. aspxのbodyタグ内(bodyのすぐ下あたりが良いか?)に以下スクリプトを配置
<script type="text/javascript">
<!--
function chkCheckBoxList() {
var listLen = document.getElementById("<%=CheckBoxList1.ClientID %>").rows.length;
var chkCnt = 0;
for (var i = 0; i < listLen; i++) {
var chk = document.getElementById("<%=CheckBoxList1.ClientID %>").rows[i].cells[0].children[0].checked;
if (chk) {
chkCnt++;
}
}
if (chkCnt == 0) {
alert('1個もチェックしてないです。。。');
return false;
}
else if (chkCnt > 1) {
return confirm('2個以上ですがいいですか。。。');
}
return true;
}
//-->
</script>
2. ButtonのOnClientClickプロパティに1.のスクリプトを設定
return chkCheckBoxList();
って感じ。
【チェックボックスがCheckBoxListで無い場合】
上記スクリプトを
var chk = document.getElementById("<%=CheckBox1.ClientID %>").checked;
var chk2 = document.getElementById("<%=CheckBox2.ClientID %>").checked;
......
を使用するように変更。
※ 以上、動作検証してないのでバグあるかも。。。