質問

ご挨拶、この複雑な問題の簡単な解決策がありますように。途中で私が持っている誤解を修正してください。  少し前に、動的な列機能を備えたGrivViewを作成しました。列は、ビューステートが適用される前に追加されるように、OnInitページイベントに追加されます。これらは、ページのこのセクションのすべての投稿に再適用されるため、ビューステートが適用されると、ユーザーがデータベースにコミットしていない変更が維持されます。また、ビューステートコントロールツリーを同期から外し、すべてを爆破したくない場合にも必要です。

現在の問題は、ドロップダウンリストに基づいて列が異なるという本質的に同じことをするようになりました(ddlが変更されるとGridViewを再作成し、ユーザーは警告)。 OnInitイベントのドロップダウンリストで選択されたIDを取得するにはどうすればよいですか?私の理解では、ユーザーがクライアント側でddlの値を変更すると、JavaScript“ __ doPostBack”呼び出しが発生します。ページリクエストはサーバーに送信されますが、イベントハンドラーに新しい値が現れるまでに、列を追加する必要がある時点を過ぎています。

どのコントロールがポストバックを引き起こしたのかを判断しようとしたときに有望だと思ったものを見ましたが、そのコードはpage.Request.Params.Get(" __ EVENTTARGET");に依存しています。およびpage.Request.Formは空です。

セッションの状態を見て、‘送信’クライアント側の操作、または他の方法を使用したID(おそらく私が見逃しているビューステートを覗くのに卑劣な方法)?

アイデアをありがとう!!!

役に立ちましたか?

解決

フォームがまだ再構築されていないように見える場合でも、コントロールの送信された値はRequest []コレクションから利用できます。

次を使用して、Init()中に選択した値を取得できるようにする必要があります。

string value = Request["myDropDownID"];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top