- 題名: サーバー側でメッセージ制御
 - 日時: 2009/11/05 9:22:00
 - ID: 25727
 - この記事の返信元: 
- (なし)
 
 - この記事への返信: 
- [25730] Re[1]: サーバー側でメッセージ制御2009/11/05 14:59:30
 
 - ツリーを表示
 
■No25727に返信(たかさんの記事)
> confirmをこの中に書いてやる事も出来るのは解っていますが、confirmの戻り値をサー
> バー側で判断しなければならないためその部分の書き方も解りません。
hidden コントロールに confirm の値をセットして
ポストバックしてはいかがでしょうか。
function $(elementID){
    return document.getElementById(elementID);
}
function delete(){
    $("HiddenDelete").value = confirm("削除しますか");
    $("form1").submit();
}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Request.Form("HiddenDelete") = "true" Then
        ...
    End If
End Sub
■No25731に返信(たかさんの記事)
> Response.Write(Script)
Response.Write を使った場合、レンダリングされる HTML の冒頭に JavaScript が出力さ
れ、JavaScript 内に記述したコントロールを参照できないためエラーになるのではない
かと思われます。
サーバー側から JavaScript を登録するには
ClientScript.Register... を使ったほうが善いです。
こんな感じです。
Dim script As String = _
    "document.getElementById('txtTorihiki').value = confirm('削除しますか');" & _
    "document.getElementById('form1').submit();"
ClientScript.RegisterStartupScript(Me.GetType(), "deleteScript", script, True)
.NET Framework クラス ライブラリ
    ClientScriptManager.RegisterStartupScript メソッド (Type, String, String, Boolean)
http://msdn.microsoft.com/ja-jp/library/z9h4dk8y.aspx
> "document.getElementById('txtTorihiki')=confirm('削除しますか'); "
エレメントそのものに bool 値をセットしようとしているため
エラーとなる可能性があります。
> "document.getElementById(form1).submit(); "
"document.getElementById('form1').submit(); "
いつもお世話になっています。
現在問題になっているのは、サーバー側からYES,NOメッセージを
表示させて、クライアントのYES,NOの結果で処理を継続するかしないかを
またサーバー側で判断したいのです。
自分で色々調べて
btnDel.Attributes.Add("onClick", "return confirm('削除します。よろしいですか?');")という書き方があったのですが、これだと、ボタンを押下した時にクライアント
側でメッセージが表示された後にボタンイベントが走ってしまいます。
くどいようですが、サーバー側のボタンイベント内で処理を継続するかどうか判断する旨のメッセージを表示してその結果処理を継続するかしないかをしたいのです。
また
Script = "<script language=javascript>" + "window.alert('データが存在しません。')" + "</script>"
Response.Write(Script)でメッセージをサーバー側から返せる事は解っています。
confirmをこの中に書いてやる事も出来るのは解っていますが、confirmの戻り値をサーバー側で判断しなければならないためその部分の書き方も解りません。
どなたか御教授していただけないでしょうか?
宜しくお願いします。