- PR -

クライアントコールバックについて

1
投稿者投稿内容
ござーる
会議室デビュー日: 2006/06/14
投稿数: 17
投稿日時: 2006-07-12 14:24
いつもお世話になっています。
VisualStudio2005で開発しています。

DropDownList1とDropDownList2があり
DropDownList1の選択した値によって
DropDownList2のitemを変更しようとしています。
そこでポストバックでは重いのでクライアントコールバックで
実現したいと考えています。

コールバックの受け取りはクライアントのJavaScriptで書くみたいですので
document.Form1.コントロールID.options[0].value = 値;
みたいな感じで値を代入しました。
ここまでは問題なくできたのですが、
この後にポストバックすると以下のようにエラーになります。
「無効なポストバックまたはコールバック引数です。イベントの検証は、構成の <pages enableEventValidation="true"/>、またはページの <%@ Page EnableEventValidation="true" %> を使用して有効にされます。セキュリティの目的により、この機能は、イベントをポストバックまたはコールバックする引数が、それらを最初に表示したサーバー コントロールから発行されていることを確認します。データが有効であり、予期されている場合、検証のためのポストバックまたはコールバック データを登録するために ClientScriptManager.RegisterForEventValidation メソッドを使用してください。」

EnableEventValidation=falseにすればエラーはなくなりますが、
DropDownList2が代入する前の値に戻ってしまいます。

どうにか実現できないでしょうか。
よろしくお願いします。
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-07-12 15:51


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:51 ]
ござーる
会議室デビュー日: 2006/06/14
投稿数: 17
投稿日時: 2006-07-12 16:41
ぜうすさん、返信ありがとうございます。

EnableViewState=Falseにしてもエラーがでます。
しかもポストバックしたあとでこの値を利用したいのでfalseにできません。

"<Select ..."にするというのはどういうことでしょうか?

〜.options[0].text=値、〜.value=値で入れる方法しか知りませんでした。
いろいろなやり方があるのですね。
JavaScriptはもう少し勉強しなくては。

1

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