2011-08-08 12 views
2

私のWebページには、40個のasp.netドロップダウンリストがあります。 DataBind()を使用してサーバーサイドのコントロールをバインドすると、ページが空白になるまでに12秒かかります。データバインディングがなければ、ページは1秒で読み込まれます。asp.netドロップダウン - javacriptを使用したデータ入力

私はクライアント側でバインディングを行うことにしました。私はグーグルで、私はこれを持ってlink。 しかし、私が直面している問題は、私がPopulateControl()をJavaScriptで使うと、私はポストバック中にSelectedIndexだけを取得します。

asp.netドロップダウンには、SelectedIndex、SelectedValue、SelectedTextなどのプロパティがあります。これらのプロパティは、コードビハインドで多く使用され、選択されたインデックスに基づいてロジックを変更することは、私にとっては非常に困難です。

私はjavascriptでコントロールをバインドし、ポストバック中にこれらのプロパティをすべて取得できる方法はありますか?

ありがとうございます。

答えて

2

ドロップダウンの項目がページにロードされていないため、通常のASP.netの方法ではアクセスできません。選択された値を取得するために要求オブジェクトを使用する:あなたはMasterPagesまたは他の命名コンテナを使用している場合、Requestオブジェクトに渡された名前がマングルすることができるよう

string selVal = request.Form["dropDownName"]; //C# code 

は注意してください。

プレーンHTMLの選択コントロールを使用することもできます。

+0

項目はaspxページにあります。だから私はそれがpage_loadで利用できるはずだと思います。これらの項目にバインドされたデータのみがクライアント側で処理されます(Ajax)。しかし、なぜ私は、javascriptバインドされた値がポストバック中にコードビハインド(サーバー側)で利用できないのだろうと思っています。 – Raghav

+0

自分の言葉の選択肢が不十分です。私はドロップダウンリスト自体の項目(オプション)を参照していました。副メモでは、すべてのリストに同じアイテムが含まれているのか、それとも異なるのですか?もともと40秒のページ読み込み時間があったのは、複数のデータベース呼び出しか1つだけでしたか? –

+0

ああ。はい。これらのすべてのドロップダウンには異なる値があります。すべてのDataBind()をコメントアウトしてページを読み込むと、その読み込みは1秒です。コントロールは空になります。だから私はajax呼び出しを使用してバインディングJSを書き換えました。 DBコールは1回の呼び出しで、40個のテーブルをすべてフェッチします。 2秒後に実行され、1回目のヒット後に結果がキャッシュされます。 これで、JSによって追加された

関連する問題