- PR -

HTMLからxxx.aspx.vbへの処理のわたし方。

投稿者投稿内容
Qちゃん
常連さん
会議室デビュー日: 2003/06/27
投稿数: 36
投稿日時: 2004-12-16 13:44
皆さんたくさんご意見ありがとうございます。

菊池様のおっしゃるとおり、onFocus時に処理を発生させると無限ループになり、まずそうですね・・・;気がつきませんでした。
Qちゃん
常連さん
会議室デビュー日: 2003/06/27
投稿数: 36
投稿日時: 2004-12-20 11:44
引用:

ぼのぼのさんの書き込み (2004-12-15 14:41) より:
私もアイディアだけ。
ページのどっかにHiddenフォームを置いといて、
onfocus="Form1.Hidden1.value=this.id;Form1.submit();"
ってやっといて、aspx.vbのPage_LoadでHidden1の値を見て処理を行う。
あ、でもDataList内のTextBoxのidは自動生成だからだめか…
もうひと工夫必要ですね(^^;
ちょっとちゃんと調べてないんでここはわからないのですが、
id自動生成のとこに一定の規則性があるならこの方法も使えますかね?

今回のケースに限ったことでなく、hiddenを使いまわしてPage_Loadに処理を書く、
という方法、私はよく使ってます。つくりがシンプルになることが多いので。



control.Attributes("onFocus")="Form1.Hidden1.value=this.id;alert(Form1.Hidden1.value);"
とやってみました。

ALERTではForm1.Hidden1.valueの値が取れているのですが、
.aspx.vbの方でHidden1.valueの値が取れません(""となります)。
これはどうしてでしょうか?
HTMLの方でHidden1に値を代入していることになるので.aspx.vbの方には反映されていないとか…よくわからないんですがそんなことなのでしょうか?
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2004-12-20 12:41
Hiddenフォームをサーバコントロールにしないとだめです。
デザイナでHidden1を右クリックして「サーバコントロールとして実行」ってすると
サーバ側でMe.Hidden1.Valueでとれるはず。
Qちゃん
常連さん
会議室デビュー日: 2003/06/27
投稿数: 36
投稿日時: 2004-12-20 13:00
引用:

ぼのぼのさんの書き込み (2004-12-20 12:41) より:
Hiddenフォームをサーバコントロールにしないとだめです。
デザイナでHidden1を右クリックして「サーバコントロールとして実行」ってすると
サーバ側でMe.Hidden1.Valueでとれるはず。



「サーバーコントロールとして実行」にチェックはついているのですが、値が取れてきません。
HiddenコントロールをTextBoxに変え
control.Attributes("onFocus")="Form1.TextBox1.Text=this.id;"
としてXXX.aspx.vbの方からTextBox1.Textの値をとってみても何もセットされていない状態です。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2004-12-20 14:13
> control.Attributes("onFocus")="Form1.TextBox1.Text=this.id;"
この書き方をしてしまっている時点でサーバ側のコードとクライアント側のコードの違いをちゃんと理解されてないような…(^^;
このコード、もしちゃんと実行されてればスクリプトエラーになりませんか?
サーバ側でC#やVB.NETで書かれたコードと、クライアント側にjavascriptやvbscriptで書かれたコードが如何にして実行されるかちゃんと理解すれば、自ずと原因がわかるはずです。
参考になりそうなサイトを知らないので紹介できないのが残念ですが、Webアプリの基本なのでちゃんと勉強した方がよろしいかと。

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