- PR -

[ASP.NET] button押下時に引数をサーバへ渡すには?

1
投稿者投稿内容
けると
会議室デビュー日: 2008/09/04
投稿数: 4
投稿日時: 2008-11-10 23:52
いつもお世話になっております。
ASP.NETで開発をしていて疑問に思った点があります。

ボタンを押下した時にサーバコードを呼ばれるようにしていますが、その時に
引数としてクライアントが持っている文字列を渡したいのですが、どうやるのでしょうか。
渡す文字列は、予めJavaScirptのグローバル変数に格納しているとします。
(var hensu = "ABCD" とか。)

例えば、以下のコードがあったとします。

[Default.aspx]
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>

[Default.aspx.cs]
protected void Button1_Click(object sender, EventArgs e)
{
}

ボタンを押下した場合にButton1_Clickが呼ばれるのでその引数として渡したいです。
例えば、
document.getElementsByID("Button1").value = hensu
のように、予めボタンのプロパティに値をセットしていれば、
ボタン押下の時にButton1_Clickの引数として値が渡っていきます。
しかしこれではボタンに表示されるテキストが変わってしまうため、見た目上でNGです。
ToolTipTextで同じような事をやってみましたが、やはり押下の時に目立つ為NGです。

他に良いプロパティが無いかと思って探してみたところ、
「CommandArgument」プロパティなら文字列がセット出来るかと思いました。
が、JavaScriptから値を入れる方法が分かりません。
どなたかご存知ありませんでしょうか。
もしくは同等の処理を行う方法はありますでしょうか。
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-11-10 23:55
普通にHidden使えばいいだけじゃ?

Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-11-11 07:06
このサンプルが参考になるかと?

JavaScriptで設定した値をサーバーサイドに渡す(HiddenText使用)
http://asp35.com/samples/081107VB-1.aspx

JavaScriptで設定した値をサーバーサイトに渡す(__doPostBack使用)
http://asp35.com/samples/081107VB-2.aspx

[View Code]ボタンをクリックするとソースコードが表示されます。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
けると
会議室デビュー日: 2008/09/04
投稿数: 4
投稿日時: 2008-11-11 09:59
ぴあちゃん様>
Hidden。。。ですか?調べてみます。

Access様>
HiddenText使用のサンプルを実装してみましたが
サンプルとおりにボタンのOnClientClick属性にJavaScriptの関数を
指定しても呼ばれませんでした。
ソースの16〜19行目を見ると「jquery」という文字列が見えるので
このライブラリを使用する必要があるのでしょうか。
今はAjax ExtensionとAjax Control ToolKitしか使っていません。
けると
会議室デビュー日: 2008/09/04
投稿数: 4
投稿日時: 2008-11-11 10:30
ACCESS様>

失礼しました。サンプルが動きました。
原因はボタンのEnableの初期値をFALSEにしていた為でした。
画面上の操作でJavaScriptを使ってボタンのEnableをtrueに(厳密にはdisableをfalseに)
切り替えたはずなのですが・・・。

とにかくありがとうございました。希望の処理が作れそうです。
1

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