- PR -

VBScriptのメッセージボックスの戻り値のC#コード側での取得

投稿者投稿内容
C#初心者
会議室デビュー日: 2003/12/04
投稿数: 10
投稿日時: 2003-12-15 12:06
いつもお世話になっております。

現在、Webコントロールのボタンをクリックすると[OK]と[キャンセル]ボタンのある
メッセージボックスをVBScriptで表示し、メッセージボックスの戻り値によって
C#のコード側(.csファイル)で処理を変える実装を行おうとしています。

VBScriptで、
Sub Message(Msg)
Dim strMessage
strMessage = Msg

Call MsgBox(strMessage,vbokcancel,strMessage)
End Sub
という関数を定義し、
csファイルのPage_Load()中に以下の記述を行っています。
Button.Attributes.Add("OnClick", "Message('何かのメッセージ')");

これでWeb画面上のButtonを押すとメッセージボックスは表示されるのですが、
どのボタンを押されたかの情報をcsファイルのコード側でどのように
取得するのでしょうか?

ご存知の方、よろしくお願いします。
PoH
常連さん
会議室デビュー日: 2003/09/09
投稿数: 48
投稿日時: 2003-12-15 12:49
値を取得すればいけます。
ちょっと今環境無くてTxtで記述したので
細かいところは自分で調べて修正してください。


コード:
DialogResult result;
result = MessageBox.Show("OKですか?",MessageBoxButtons.OKCancel);
if(result == DialogResult.OK)
{
 //処理
}


レイコ
会議室デビュー日: 2003/12/15
投稿数: 11
投稿日時: 2003-12-15 12:53
VBScriptの使い方がわかりませんが、私は同じ問題でJAVAScriptを使って解決しました。
JAVAScriptのソースは
function ShowMsg(str){
return window.confirm(str);
}
Page_Load()中に以下の記述を行っています。
Button1.Attributes.Add("onclick", "return ShowMsg(""" & "何かのメッセージ" & """);")
この中のButton1はボタンIDです。
そっちのButton.Attributes.Add("OnClick", "Message('何かのメッセージ')");の中で、Buttonをボタン名に入れ替わったらいかがでしょうか。やってみてください。
C#初心者
会議室デビュー日: 2003/12/04
投稿数: 10
投稿日時: 2003-12-15 14:00
ご返答、ありがとうございます。
質問内容が判りにくかったかも知れませんが
私が今試しているのは、Webフォーム上でのことなので、
Message.Showメソッドは使用できないと思うのですが
どうでしょうか?

引用:

PoHさんの書き込み (2003-12-15 12:49) より:
値を取得すればいけます。
ちょっと今環境無くてTxtで記述したので
細かいところは自分で調べて修正してください。


コード:
DialogResult result;
result = MessageBox.Show("OKですか?",MessageBoxButtons.OKCancel);
if(result == DialogResult.OK)
{
 //処理
}




レイコ
会議室デビュー日: 2003/12/15
投稿数: 11
投稿日時: 2003-12-15 14:11
C#初心者さん:そっちのVBScriptを試してみました。やはりButtonは押されたボタンのIDです。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2003-12-15 14:13
VBScript側で
if vbOK = MsgBox(strMessage,vbokcancel,strMessage) Then
みたいにして
form名.TextBox1.value = "サーバに渡す値"
のようにhiddenタグか何かに保存するんですかねぇ。

ざっと思いつくのでは、asp:textBoxで大きさを0にするか
HtmlInputHiddenを使うかですね。
<asp:TextBox Visible="false" ・・ > にするとViewStateに入っちゃいますし
(入らない方法ご存知の方おりますか?)

レイコさんの方法ではどうやってサーバで値をとってるんでしょうか?

[ メッセージ編集済み 編集者: べる 編集日時 2003-12-15 14:14 ]
レイコ
会議室デビュー日: 2003/12/15
投稿数: 11
投稿日時: 2003-12-15 14:23
VBScriptと同じだと思いますが、画面のHTML
<HTML>
 <HEAD>
  <script src="JScript1.js" type="text/javascript"></script>
・・・を追加すればと思います。
JScript1.jsに
function ShowMsg(str){
return window.confirm(str);
}
を入れます。
JScript1.jsの組み込む方はVBScriptoと同じです。
でも、先ほど返事しましたが、こっちはVBScriptでも同じく実現できました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-12-15 14:30
引用:

べるさんの書き込み (2003-12-15 14:13) より:
<asp:TextBox Visible="false" ・・ > にするとViewStateに入っちゃいますし
(入らない方法ご存知の方おりますか?)


 EnableViewState = False

ではなく?

スキルアップ/キャリアアップ(JOB@IT)