- - PR -
クライアントスクリプトで変更したコンボボックスの内容をサーバで取得する方法
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-28 11:13
LoadじゃなくてPreRenderのタイミングだとどうなってますかね。
http://www.hollytown.net/UniBlog/PermaLink.aspx?id=c50ee967-0ca7-4ca1-87d4-42305a6637ab こんな感じでASP.NETの場合、イベントのそれぞれが処理されるタイミングは 決まっていますから、Loadの時点でまだ変更になったデータがセットされていない、 ということもあるかと。 | ||||||||
|
投稿日時: 2004-09-28 11:23
HtmlSelect.Valueとか、HtmlSelect.Items[SelectedIndex].Textとか。
いけないのですか?もちろんHtmlSelectがタブーというわけではないですが。 編集:文字列を直接・・の話はあまり問題ではないかもしれないので削除 [ メッセージ編集済み 編集者: べる 編集日時 2004-09-28 11:51 ] | ||||||||
|
投稿日時: 2004-09-28 12:07
もうここまできたら、
質問者は現象が再現できるソースコードを 掲示して回答を募ったほうが、早く回答が得られますよ。 周りの人が、こうではないか、ああではないかと 状況を推測するのはしんどいです。 | ||||||||
|
投稿日時: 2004-09-28 12:23
お世話になります。
一郎様 HTMLのソースを確認しても、初めに設定したドロップダウンリストの内容がそのまま表示されています。 今は1つ目のドロップダウンリストのonchangeのイベントで以下のようなクライアントスクリプトが機能するようにしております。 予め1つ目のドロップダウンリストの値が変更された時に 2つ目のドロップダウンリストに表示させたいTEXTの配列、VALUEの配列を作成しておき ↓ Form1.2つ目のドロップダウンリスト.options.length = 0; for (i=0;i<値の配列.length;i++){ Form1.2つ目ドロップダウンリスト.options[i]= new Option(TEXTの配列[i],VALUEの配列[i]); } で2つ目のドロップダウンリストのTEXT、VALUEを全て変更しています。 従って、HTMLのソースを見ても、初めに設定した内容が表示されます。 小野様 PreRenderのイベントで2つ目のドロップダウンリストの値(HtmlSelect.Value) を拾って見ましたが、やはりクライアントで更新する前のものがセットされていました。 べる様 値はHtmlSelect.Valueをみております。 System.Web.UI.WebControls.DropDownListを使用しない理由ですが、得にありません。強いていうならば、HtmlSelectの方がDropDownListより処理が軽そうだったからです。(調べたわけではないので、全くの主観です。) ところで、前にも書かせていただきましたがなぜ、Request.Form("コンボボックス名")の値とコンボボックス名.Valueの値が異なるんでしょうか | ||||||||
|
投稿日時: 2004-09-28 13:11
1つ目のドロップダウンリストですが、PostBackしたときもそのドロップダウン
リストに表示するデータを追加する処理がPage_Loadに入ってたりしませんか? この場合、PostBackであってもPage_Loadで1つ目のドロップダウンリストが 再度新たに作成することになって、ブラウザから返って来た値は無視されると 思います。 そのあたりは大丈夫ですかね? | ||||||||
|
投稿日時: 2004-09-28 13:47
(この場合は「手動で変えた場合」つまりjavascriptをいっさい使用しないケース) について考えるべきだと思います あと「変更前の内容」をどのように設定しているかも重要です。小野さんが おっしゃってるIsPostBackを意識しているか、ともからみますし。
いなければ再現しましたし原因もなんとなくわかります。でも、手動で選択を 切り替えた場合は再現できないですね(、、やっぱり私の勘違いかな、、) | ||||||||
|
投稿日時: 2004-09-28 21:14
ドロップダウンリスト2の「初期化」を、どこ(C/S)でやっていますか?
Sの場合、どのメソッド(またはイベントハンドラ)でやっていますか? 本当にJavaScriptで値が変更されていますか?(これはRequestを見ると変わっているということですから、okですね) CとSの、ドロップダウンリスト2の宣言、およびHTML上での表記(IE上でソースを見る)は、どうなっていますか? | ||||||||
